728x90
반응형
1. 복수의 값을 토해내는 리턴값
(메인)함수나 메소드는 기본적으로 하나만 리턴한다.
그런데 경우에 따라서는 2,3개를 반환해야할때도 있다.
Pair, Triple이라는 클래스를 이용하면 편하다.
※attribute : 속성
2개의 값을 다루는 Pair class
first | 첫번째 값 |
second | 두번째 값 |
3개의 값을 다루는 Triple class
first | 첫번째 값 |
second | 두번째 값 |
third | 세번째 값 |
fun main() {
val t = Person("아테나", "안", 12)
val (n1,n2) = t.getName() //리턴값이 2개이므로 복수의 변수를 준비해야한다.
val (at1,at2,at3) = t.getArrt() //리턴값이 3개이므로 복수의 변수를 준비해야한다.
println(n1+"::"+n2)
println(at1+"::"+at2+"::"+at3)
}
class Person(first : String, family : String, age : Int) {
val first = first
val family = family
val age = age
fun getName():Pair<String,String>{
return Pair(first,family)
}
fun getArrt() : Triple<String,String,Int> {
return Triple(first,family,age)
}
}
//output
아테나::안
아테나::안::12
2. 확장 메소드, 확장 프로퍼티
class의 프로퍼티나 메소드는 기본적으로 정의된 내용으로 사용된다.
그렇지만 이미 정해진 내용을 확장하여 프로퍼티나 메소드를 추가하고싶을때가 있다.
이때 쓰는것이 확장 메소드, 확장 프로퍼티이다.
fun main() {
val t = Person("아테나","안",21)
t.println()
val h = Person("캬","캬앙",20)
h.println()
}
class Person(first : String, family : String, age : Int) {
val first = first
val family = family
val age = age
}
val Person.name : String
get() = this.first + "-" + this.family
fun Person.println(){
println("${this.name} (${this.age})")
}
//output
아테나-안 (21)
캬-캬앙 (20)
728x90
반응형
'Kotlin' 카테고리의 다른 글
Delegate Pattern 위임패턴 (0) | 2024.08.20 |
---|---|
Kotlin14. null 문제, 스코프함수 (0) | 2023.08.13 |
Kotlin12. class의 다른 확장 - Delegation, observable... (0) | 2023.08.13 |
Kotlin11. interface, abstract, Singleton (0) | 2023.08.13 |
Kotlin10. class와 OOP (0) | 2023.08.06 |