개발을 하게 되면서 일상적으로 마주하는 상황 중에 변수들을 넘겨주기 위한 클래스나 메소드를 설계하고, 이를 활용해야 할 때가 있다.
코틀린은 이런 상황에서 개발자가 그저 설정이 필요 없는 변수들을 넘겨줄 것 없이 손쉽게 개발 할 수 있도록
Default Argument를 제공하고 있다.
1. Default Argument
- 정의한 Function 혹은 class의 매개변수를 아래와 같이 설정한다.
// 아이스크림을 만드는 function이 있다면?
// amount는 만드는 갯수, option은 맛이라고 할 때.
fun makeIcecream(amount: Int = 1, option : String = "바닐라"): IceCream {
return IceCream(amount, option)
}
// 이를 실제로 활용하게 될 때
// 1. 그냥 다짜고짜 아이스크림 주세요 라고 한다면, 설정한 default arguemt에 따라
// 바닐라 아이스크림 한 개를 넘겨주게 됨.
makeIcecream()
// 2. 아이스크림 3개를 그냥 달라고 했다면, 이를 상수에 넣어 넘겨줄 수 있음.
makeIceCream(3)
// 3. 아이스크림 갯수와 맛을 정해 달라고 했다면, 이를 모두 명시해 사용이 가능
makeIceCream(3, "엄마는외계인")
2. Named Argument
- Default Argument와 더불어서 유용하게 쓰기 좋은 요소다.
- function 및 일반 class에도 동일하게 사용 가능하기 때문에 default data class 값을 설정해주느라 번거로웠을 사람들에겐 매우 편한 기능이 아닐 수 없다.
fun makeIcecream(amount: Int = 1, option : String = "바닐라", distance : Long = 0): IceCream {
return IceCream(amount, option, distance)
}
// Arguement의 갯수가 많은 경우, 그리고 원하는 Argument만 바꾸고자 할 때 이렇게 활용한다.
makeIceCream(distance = 1000)
makeIceCream(option = "뉴욕치즈케이크")
< 참조 >
'LANGUAGES, METHODLOGY > Kotlin' 카테고리의 다른 글
[Kotlin] 컬렉션의 lazy 연산을 짚어보자 (Sequence) (0) | 2021.11.18 |
---|---|
[Kotlin] 컬렉션 함수형 API로 컬렉션 쉽게 갖고 놀기 (0) | 2021.11.17 |
[안드로이드] Kotlin sealed class로 여러 클래스들을 보다 분명하게, 유연하게 활용하기 (0) | 2020.08.10 |
[안드로이드 | 코틀린] 코틀린으로 Queue 사용해보기 (0) | 2019.12.13 |
[안드로이드 | ExoPlayer] EventListener를 활용해 여러개의 동영상 연달아 재생하기 (0) | 2019.11.11 |