Kotlin에는 Pair, Triple과 같이 2개, 혹은 3개의 값만 받는 타입이 따로 있다.
자세한 건 문서를 확인하자.
Triple - Kotlin Programming Language
kotlinlang.org
위 사진처럼 다양한 타입의 3가지 값을 받는다.
이를 Swift로 구현해보자 한다.
시작하기 전 Swift에 있는 Tuple을 참고하면 좋다.
1. Triple은 first, second, third라는 프로퍼티를 가진다.
2. 각 프로퍼티들의 타입은 A, B, C이며 각각 아래와 같은 역할을 한다.
이를 Swift코드로 구현해 보았다.
class Triple<A: Any, B: Any, C: Any> {
var first: A
var second: B
var third: C
init(_ first: A, _ second: B, _ third: C) {
self.first = first
self.second = second
self.third = third
}
}
각 A, B, C는 어떤 타입도 올 수 있기에 Any로 했다.
Triple에는 다음과 같은 함수들이 있기에 추가해줬다.
toList()는 Any타입의 배열을 반환하게 했다. toString 또한 String으로 반환하게 하여 간단하게 처리했다.
func toList() -> [Any] {
return [first, second, third]
}
func toString() -> String {
return "(\(first), \(second), \(third))"
}
전체 코드
import UIKit
class Triple<A: Any, B: Any, C: Any> {
var first: A
var second: B
var third: C
init(_ first: A, _ second: B, _ third: C) {
self.first = first
self.second = second
self.third = third
}
func toList() -> [Any] {
return [first, second, third]
}
func toString() -> String {
return "(\(first), \(second), \(third))"
}
}
let triple = Triple(1, "A", "Choi")
print(triple.toList())
print(triple.toString())
전체 코드이다. triple이라는 변수에 위와 같이 값을 넣어주고 출력을 하면
[1, "A", "Choi"]
(1, A, Choi)
이렇게 나온다.
Pair는 저기서 third만 삭제해주면 된다.
실제 Kotlin에서는 out이라는 키워드를 사용하고 toList() 함수를 밖에 꺼내서 사용하는 등 조금 다른데 이 부분은 조금 더 공부해봐야 할 것 같다.
'Programming > Swift' 카테고리의 다른 글
[Swift] Foundation, UIKit, Swift (0) | 2020.03.29 |
---|