<Android> 복수 데이터 리턴& 확장함수
★복수 데이터 리턴★
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(){이름과 나이출력}}