24データクラスとEnumクラス
24データクラスとEnumクラス
データクラス
最適化されたデータ処理クラス
データクラスの機能
fun main() {
val a = General("보영", 212)
println(a == General("보영", 221))
println(a.hashCode())
println(a)
val b = Data("루다", 306)
println(b == General("루다", 306))
println(b.hashCode())
println(b)
println(b.copy())
println(b.copy("아린"))
println(b.copy(id = 618))
val list = listOf(Data("보영", 212),
Data("루다", 306),
Data("아린", 618))
for ((a, b) in list) {
println("${a}, {b}")
}
}
class General(val name: String, val id: Int)
data class Data(val name: String, val id: Int)
結果
Generalクラスで作成したaはequals()またはhashCode、toString()関数の結果を正しく実現できません.dataクラスで作成したbを使用すると、3つの関数が意味のある機能を自動的に実現でき、copy()関数でソースの新しいオブジェクトをコピーすることも容易に作成できます.
Enumクラス
例
enum class Color (val number: Int) {
RED(1),
BLUE(2),
GREEN(3);
fun isRed() = this == Color.RED
}
fun main() {
var state = State.SING
println(state)
state = State.SLEEP
println(state.isSleeping())
state = State.EAT
println(state.message)
}
enum class State(val essage: String) {
SING("노래를 부릅니다"),
EAT("밥을 먹습니다"),
SLEEP("잠을 잡니다");
fun isSleeping() = this == State.SLEEP
}
参考資料
ディモのKotlin講座
Reference
この問題について(24データクラスとEnumクラス), 我々は、より多くの情報をここで見つけました https://velog.io/@wlgy33/24-Data-클래스와-Enum-클래스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol