Kotlin 문법: "Pair&Triple 리턴"

SHY(code poet)·2024년 3월 14일

✨Kotlin에 관하여✨ 

목록 보기
34/36

여러 인스턴스 리턴 (하나의 값에 여러 인스턴스 담기)

  • 메소드는 기본적으로 하나의 데이터를 리턴한다.
  • 두 개 이상의 데이터를 포함하는 데이터클래스를 설계하고 인스턴스를 리턴하면 가능하다.
    (여러 값을 리턴한다기 보다는 여러 프로퍼티 정보를 채워서 객체를 리턴하는 것)
  • 하지만 매번 불필요한 클래스를 만드는 행위는 비효율적이다.
  • 그러나 이를 위해 코틀린은 두개, 세개 리턴할 수 있는 클래스를 제공한다.

Pair: 두 개의 인스턴스 리턴

var chicken = Chicken()
var eggs = chicken.getEggs()
var listEggs = eggs.toList()

//    first, second로 관리
//    var firstEgg = eggs.first
//    var secondEgg = eggs.second

// 리스트로 관리
var firstEgg = listEggs[0]
var secondEgg = listEggs[1]

println("달걀의 종류는 ${eggs} 입니다.")
println("리스트 달걀의 종류는 ${listEggs} 입니다.")
println("첫번째 달걀의 종류는 ${firstEgg} 입니다.")
println("두번째 달걀의 종류는 ${secondEgg} 입니다.")
}

class Chicken {
    fun getEggs(): Pair<String, String> {
        var eggs = Pair("달걀", "맥반석")
        return eggs
    }
}

Triple: 세 개의 인스턴스 리턴

fun main() {
    var chicken = Chicken()
    var eggs = chicken.getThreeEggs()
    var listEggs = eggs.toList()

//    first, second, third로 관리
//    var firstEgg = eggs.first
//    var secondEgg = eggs.second
//    var eggTime = eggs.third

    // 리스트로 관리
    var firstEgg = listEggs[0]
    var secondEgg = listEggs[1]
    var eggTime = listEggs[2]

    println("달걀의 정보는 ${eggs} 입니다.")
    println("리스트 달걀의 정보는 ${listEggs} 입니다.")
    println("첫번째 달걀의 종류는 ${firstEgg} 입니다.")
    println("두번째 달걀의 종류는 ${secondEgg} 입니다.")
    println("달걀은 ${eggTime}에 나왔습니다.")
}

class Chicken {
    fun getTwoEggs(): Pair<String, String> {
        var eggs = Pair("달걀", "맥반석")
        return eggs
    }

    fun getThreeEggs(): Triple<String, String, Int> {
        var eggs = Triple("달걀", "맥반석", 20230101)
        return eggs
    }
}
profile
진정한 개발자는 코드를 두려워하지 않는다. 오히려 코드가 그를 두려워한다.

0개의 댓글