Int
Kotlin の関数から同じ型 ( ) の 3 つの個別のデータ値を返すにはどうすればよいでしょうか?
時刻を返そうとしています。時間、分、秒を別々の整数として返す必要がありますが、すべて同じ関数から一度に返すことは可能ですか?
Swiftでは次のようにします。
func getTime() -> (Int, Int, Int) {
...
return ( hour, minute, second)
}
Kotlin でこれを実現できますか?
PS: これには Array または Hashmap を使用できることはわかっていますが、Swift のようなものが Kotlin に存在するかどうかを知りたいです。
ベストアンサー1
Kotlinでは任意のタプルを作成することはできませんが、代わりに以下を使用できます。データクラス1つの選択肢は、組み込みのPair
そしてTriple
それぞれ2つまたは3つの値を保持できる汎用クラスです。これらを組み合わせて使用できます。構造化宣言このような:
fun getPair() = Pair(1, "foo")
val (num, str) = getPair()
List
またはをArray
最初の数まで分解することもできます。5つの要素:
fun getList() = listOf(1, 2, 3, 4, 5)
val (a, b, c, d, e) = getList()
ただし、最も慣用的な方法は、関数から意味のある型を返すことができる独自のデータ クラスを定義することです。
data class Time(val hour: Int, val minute: Int, val second: Int)
fun getTime(): Time {
...
return Time(hour, minute, second)
}
val (hour, minute, second) = getTime()