Android.Study

<Android> 복수 데이터 리턴& 확장함수

도슬 2023. 7. 18. 12:41

★복수 데이터 리턴★
var chicken = Chicken() //1. 치킨 클래스만들고 인스턴스화
    var eggs = chicken.getEggs() //2. getEggs를 했떠니?
    var listEggs = eggs.toList()//6. 그 두개의 pair객체를 eggs가 가지고있고 그걸 toList화함
    
    var firstEgg = listEggs[0] //7. 결국 첫번째에는 달걀
    var secondEgg = listEggs[1] //8. 두번쨰에는 맥반석이 들어있다.

    println("달걀의 종류는 ${eggs} 입니다.") //9. 바로 Pair를 출력했을때는 (달걀,맥반석)
    println("리스트 달걀의 종류는 ${listEggs} 입니다.")    //10. list를 출력했을땐 [달걀, 맥반석]
    println("첫번째 달걀의 종류는 ${firstEgg} 입니다.")    //11. 달걀
    println("두번째 달걀의 종류는 ${secondEgg} 입니다.")    //12. 맥반석
}

class Chicken {
    fun getEggs(): Pair<String, String> {    //3. 리턴타입은 Pair고 1,2파라미터String타입
        var eggs = Pair("달걀", "맥반석")
//4. Pair라는 객체는 결국 달걀과 맥반석이라는 두개의 값을 가지고 있고 이걸 eggs에 넣고 
        return eggs //5. 이 eggs를 리턴함
    }
}

★확장 함수★
fun main() {
    fun Student.getGrade() = println("학생의 등급은 ${this.grade} 입니다")    //2. 바로 getGrade()함수를 만들고
    var student = Student("참새", 10, "A+")                             //3. Student를 인스턴스화 해서
    student.displayInfo()                             //4. 원랜 displayInfo가 이름과 나이만 보여줬는데
    student.getGrade()                                     //5. getGrade로 등급까지 보여주네? 좋다
}

//1. 밑에 Student클래스를 건드리지않고 getGrade함수를 쓰고 싶어!

class Student(name: String, age: Int, grade: String) {displayInfo(){이름과 나이출력}}