#18 Kotlin Koans Conventions/Destructuring declarations 해설
1 소개
Kotlin 공식 레퍼런스의 Kotlin Koans/Destructuring declarations의 해설 기사입니다.
Kotlin Koans를 통해 Kotlin을 배우는 사람들의 도움이 되길 바랍니다.
다만, 레퍼런스를 자력으로 읽는 힘을 기르고 싶은 분은,
곧이 기사를 보지 마십시오!
일단 각자 도전하고 나서 볼 수 있다고 생각합니다
2 Destructuring Declarations
Destructuring Declarations
Destructuring Declarations는 여러 변수를 동시에 선언할 수 있는 메커니즘입니다.
아래에서는 name
와 age
라는 두 개의 변수가 동시에 선언되어 있습니다.
val (name, age) = person
각 요소는 별도로 사용할 수 있습니다.
println(name)
println(age)
아래와 같이, componetN()
함수를 이용해 참조하는 것도 가능합니다.
val name = person.component1()
val age = person.component2()
componetN()
의 N
의 부분은 선언시의 순서와 일치합니다.
componetN()
는 data 클래스 에서 자동으로 선언되는 함수입니다.
따라서 data 클래스에서는 Destructuring declarations를 사용할 수 있습니다.
3 Conventions/Destructuring declarations 해설
Kotlin Koans Conventions/Destructuring declarations 의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Read about destructuring declarations and make the following code compile by adding one word.
Destructuring_declarations/* TODO */class MyDate(val year: Int, val month: Int, val dayOfMonth: Int)
fun isLeapDay(date: MyDate): Boolean {
val (year, month, dayOfMonth) = date
// 29 February of a leap year
return year % 4 == 0 && month == 2 && dayOfMonth == 29
}
val (year, month, dayOfMonth) = date
의 부분에서 Destructuring declarations를 이용하려고 하고 있습니다.
단, 이대로는 이용할 수 없습니다.
date
는 MyDate 형의 인스턴스입니다만, MyDate 클래스가 data 클래스가 아니기 때문입니다.
따라서, MyDate 클래스를 data 클래스로 하면 좋기 때문에 이하가 해답이 됩니다.
Destructuring_declarationsdata class MyDate(val year: Int, val month: Int, val dayOfMonth: Int)
fun isLeapDay(date: MyDate): Boolean {
val (year, month, dayOfMonth) = date
// 29 February of a leap year
return year % 4 == 0 && month == 2 && dayOfMonth == 29
}
4 마지막으로
다음은 Kotlin Koans Conventions/Invoke의 해설을합니다.
Reference
이 문제에 관하여(#18 Kotlin Koans Conventions/Destructuring declarations 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-o/items/775ebac69a30d464b126
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Destructuring Declarations
Destructuring Declarations는 여러 변수를 동시에 선언할 수 있는 메커니즘입니다.
아래에서는
name
와 age
라는 두 개의 변수가 동시에 선언되어 있습니다.val (name, age) = person
각 요소는 별도로 사용할 수 있습니다.
println(name)
println(age)
아래와 같이,
componetN()
함수를 이용해 참조하는 것도 가능합니다.val name = person.component1()
val age = person.component2()
componetN()
의 N
의 부분은 선언시의 순서와 일치합니다.componetN()
는 data 클래스 에서 자동으로 선언되는 함수입니다.따라서 data 클래스에서는 Destructuring declarations를 사용할 수 있습니다.
3 Conventions/Destructuring declarations 해설
Kotlin Koans Conventions/Destructuring declarations 의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Read about destructuring declarations and make the following code compile by adding one word.
Destructuring_declarations/* TODO */class MyDate(val year: Int, val month: Int, val dayOfMonth: Int)
fun isLeapDay(date: MyDate): Boolean {
val (year, month, dayOfMonth) = date
// 29 February of a leap year
return year % 4 == 0 && month == 2 && dayOfMonth == 29
}
val (year, month, dayOfMonth) = date
의 부분에서 Destructuring declarations를 이용하려고 하고 있습니다.
단, 이대로는 이용할 수 없습니다.
date
는 MyDate 형의 인스턴스입니다만, MyDate 클래스가 data 클래스가 아니기 때문입니다.
따라서, MyDate 클래스를 data 클래스로 하면 좋기 때문에 이하가 해답이 됩니다.
Destructuring_declarationsdata class MyDate(val year: Int, val month: Int, val dayOfMonth: Int)
fun isLeapDay(date: MyDate): Boolean {
val (year, month, dayOfMonth) = date
// 29 February of a leap year
return year % 4 == 0 && month == 2 && dayOfMonth == 29
}
4 마지막으로
다음은 Kotlin Koans Conventions/Invoke의 해설을합니다.
Reference
이 문제에 관하여(#18 Kotlin Koans Conventions/Destructuring declarations 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-o/items/775ebac69a30d464b126
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/* TODO */class MyDate(val year: Int, val month: Int, val dayOfMonth: Int)
fun isLeapDay(date: MyDate): Boolean {
val (year, month, dayOfMonth) = date
// 29 February of a leap year
return year % 4 == 0 && month == 2 && dayOfMonth == 29
}
data class MyDate(val year: Int, val month: Int, val dayOfMonth: Int)
fun isLeapDay(date: MyDate): Boolean {
val (year, month, dayOfMonth) = date
// 29 February of a leap year
return year % 4 == 0 && month == 2 && dayOfMonth == 29
}
다음은 Kotlin Koans Conventions/Invoke의 해설을합니다.
Reference
이 문제에 관하여(#18 Kotlin Koans Conventions/Destructuring declarations 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/G-o/items/775ebac69a30d464b126텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)