kotlin의 데이터 클래스 데이터 클래스
5093 단어 kotlin
데이터 클래스
우리는 항상 데이터만 저장하는 클래스를 만듭니다.이런 종류의 일부 함수는 단지 기계적으로 그들이 가지고 있는 데이터에 대해 약간의 추측을 할 뿐이다.kotlin에서 이러한 클래스를 데이터 클래스라고 하는데
data
로 표시한다.data class User(val name: String, val age: Int)
컴파일러는 기본 구조 함수에 선언된 모든 속성에 따라 다음과 같은 메서드를 자동으로 추가합니다.
equals()
/hashCode
함수toString
형식은 "User(name=john,age=42)"입니다.[compontN()functions] (http://kotlinlang.org/docs/reference/multi-declarations.html) 선언 순서에 따라 나타나는 모든 속성에 해당합니다.
copy()
함수클래스에서 이러한 방법을 명확하게 설명하거나 기본 클래스로부터 계승하면 컴파일러가 자동으로 생성되지 않습니다.
이러한 생성 코드의 일치성을 확보하고 의미 있는 행동을 실현하기 위해 데이터 클래스는 다음과 같은 요구를 충족시켜야 한다.
구조 함수 매개 변수
val
나var
가 없으면 이 함수에 나타나지 않으므로 주의하십시오.주구조 함수는 최소한 하나의 매개 변수가 있어야 한다.
주구조 함수의 모든 매개 변수는
val
또는 var
로 표시해야 한다.데이터 클래스는 abstract,open,sealed,또는 inner가 될 수 없습니다.
데이터 클래스는 다른 클래스를 계승할 수 없습니다. (인터페이스를 실현할 수 있습니다.)
JVM에서 구조 함수가 참조되지 않으면 모든 속성에 기본값이 있어야 합니다(Constructors 참조).
data class User(val name: String = "", val age: Int = 0)
복제하다
우리는 자주 일부 속성에 대해 수정을 하지만 다른 부분은 변하지 않기를 원한다.이것이 바로
copy()
함수의 유래다.위의 User 클래스에서는 다음과 같이 이루어져야 합니다.fun copy(name: String = this.name, age: Int = this.age) = User(name, age)
코피가 있으면 우리는 다음과 같이 쓸 수 있다.
val jack = User(name = "jack", age = 1)
val olderJack = jack.copy(age = 2)
데이터 클래스 및 다중 선언
어셈블리 함수를 사용하여 다중 선언에서 데이터 클래스를 사용할 수 있습니다.
val jane = User("jane", 35)
val (name, age) = jane
println("$name, $age years of age") // "Jane, 35 years of age"
표준 데이터 클래스
표준 라이브러리는
Pair
와 Triple
를 제공합니다.대부분의 경우 데이터 클래스를 명명하는 것이 더 좋은 디자인 선택이다. 왜냐하면 코드의 가독성이 더욱 강하고 의미 있는 이름과 속성을 제공하기 때문이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 실험, 에피소드 1a String 의 중심에 있는 문자를 반환하는 메서드를 작성하려는 경우 Java에서 가장 좋은 옵션은 유틸리티 클래스를 정의하는 것입니다. Kotlin을 사용하면 을 통해 기존 클래스에 새 메서드를 추가할 수 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.