こんにちは😀
今回は、ジェネリック型をみてみます。
ジェネリック型は今まで何度か使ってきましたが、改めて使ってみましょう。
ジェネリック型は、「<>」で型をくくる書き方で、総称型とも呼ばれます。
書いてみましょう。
以下のNatsuクラスでジェネリック型を使用しています。
「<T>」と書くことで、定義する際に任意の型を当てはめることができます。
class Natsu<T>(val thing:T) { fun open():String = “夏と言えば、${thing}” }
main関数はこうです。
3、4、5行目で定義していますが、String型でもDouble型でも定義できているのがわかります。
fun main(args: Array<String>) {
var kisetsu1 = Natsu<String>(“そうめん”)
var kisetsu2 = Natsu<String>(“夏休み”)
var kisetsu3 = Natsu<Double>(8.15)
println(kisetsu1.open())
println(kisetsu2.open())
println(kisetsu3.open())
}
実行します。
きちんと値が出力されていますね。
クラス自体をジェネリック型に指定することもできます。
以下は、データクラスと呼ばれるもので、プロパティだけを定義し、関数は定義しません。
クラスの前に「data」を書きます。
data class homework(val kamoku:String, val index:String)
そして、main関数です。
3行目にデータクラスをジェネリック型に指定して、上記のNatsuクラスを呼んでいるのがわかります。
fun main(args: Array<String>) {
var boxcookie = Natsu<homework>(homework(“算数”,”ドリル”))
println(boxcookie.open())
}
実行します。
データクラスに値がセットされて出力されていますね。
ジェネリック型は汎用性も高く見た目もわかりやすく使いやすいのが特徴です。
データクラスは、Kotlinで使える特別なクラスだそうですが、シンプルに書けるのがいいですね。
今回はここまで🤚
では、また次回。
コメント