Kotlin 객체 대상(5)✔️데이터 클래스
data
키워드Any
kotlin의 모든 종류의 뿌리류,kotlin의 모든 종류는 직접 또는 간접적으로 계승Any
류이다.데이터 형식으로서 equals,hashCode,toString을 다시 써야 한다.번거롭지는 않지만 속성이 많을 때 코드량이 많을 수 있다는 점을 감안하여 kotlin 언어 디자인에서 데이터 클래스(Data Classes)를 제공했다.
데이터 클래스 설명, 데이터 키워드
데이터 클래스 성명은 매우 간단합니다. 클래스 헤더class 앞에 데이터 키워드를 추가하기만 하면 됩니다.
data class ( ...)
예를 들면 다음과 같습니다.
data class User(val name: String, var password: String)
알림: 데이터로 데이터 클래스를 설명하는 주 구조 함수에서 매개 변수는 반드시val 또는 var로 성명해야 하며 생략할 수 없습니다.
2. copy 함수 사용
데이터 클래스에 코피 함수를 제공합니다. 코피 함수를 통해 새로운 데이터 클래스의 대상을 복사할 수 있습니다.
fun main(args: Array) {
val user1 = User(" ", "123")
val user2 = user1.copy(name = " ")
val user3 = user1.copy()
println(user1 == user2) // false
println(user1 == user3) // true
println(user1.toString()) // User (name= , password=123)
println(user2.toString()) // User (name= , password=123)
println(user3.toString()) // User (name= , password=123)
println(user1.hashCode()) // 81083983
println(user2.hashCode()) // 2662763
println(user3.hashCode()) // 81083983
}
3. 데이터 클래스 해체
데이터 대상은 하나의 데이터 용기로서 여러 개의 관련 데이터가 하나의 대상에 포장된 것으로 이해할 수 있다.구조는 상반된 조작을 하고 데이터 대상을 분리한 다음에 내부의 속성을 꺼내 서로 다른 변수에 값을 부여한다.구조는 데이터 대상뿐만 아니라 집합 대상에도 적용된다.
fun main(args: Array) {
val user1 = User(" ", "123")
val(name1, pwd1) = user1
println(name1) //
println(pwd1) // 123
val(name2, _) = user1 // password 1️⃣
println(name2) //
val(name3) = user1 // 2️⃣
println(name3) //
}
코드 1️⃣2️⃣줄도user1 대상에 대한 해체, 그중 1️⃣행 코드의 밑줄
_
은 구조의 두 번째 속성 값이 필요하지 않다는 것을 의미한다.코드 2️⃣행은 하나의name3만 있는데 이런 해체 파라미터가 데이터 클래스 속성 개수보다 적은 경우 해체 규칙은 데이터 클래스 구조 속성 순서에 따라 해체한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.