프로그래밍 언어/코틀린 기본
[코틀린 기초] arguments 다루기, infix 함수
Per ardua ad astra !
2021. 2. 27. 23:42
lesson 23 함수의 argument 다루는 방법, infix함수
패러미터를 받아야 하는 함수이지만 패러미터 없이 호출이 되었다면, 기본값으로 동작할 수 있도록 하면 좋지 않을까?
=> default argument 활용
함수 선언시 패러미터에 = 를 이용해 기본값을 설정할 수 있다!
코드예제
fun main() {
deliveryItem("짬뽕")
deliveryItem("책", 3)
deliveryItem("노트북",30,"학교")
// deliveryItem("김치찌개","집") => 오류
deliveryItem("선물", destination = "친구집")
}
fun deliveryItem(name: String, count: Int = 1, destination: String = "집"){
println("${name}, ${count}개를 ${destination}에 배달하였습니다.")
}
실행결과
=> 가운데 파라미터 count를 생략하면 순서 기반이라 못알아 들음
// deliveryItem("김치찌개","집") => 오류
파라미터의 순서와 상관없이 패러미터의 이름을 사용하여 직접 패러미터의 값을 할당하는 방법
count: Int = 1, destination: String = "집"
python에서 학습한
Positional arguments와 Keyword arguments 의 개념과 같다.
패러미터를 가변인자로 받고 싶다면? 고정된 개수가 아닌 다수의 파라미터를 받고 싶은경우.
vararg 키워드를 사용하면 개수가 지정되지 않은 패러미터로 설정할 수 있다. 단 ! 다른 패러미터와 같이 사용되는 경우에는 무조건 vararg 패러미터가 마지막에 와야한다.
코드예제
fun main() {
sum(1,2,3,4)
}
fun sum(vararg numbers : Int){
var sum = 0
for(num in numbers){
sum += num
}
print(sum)
}
결과 : 10
마치 연산자 처럼 사용할 수 있는 infix함수
infix를 fun 앞에 붙이고
함수 이름을 infix함수가 적용될 자료형.이름으로 지정한다.
코드 예제
fun main() {
println(10.5 sum 5)
println(20.5.sum(5))
}
infix fun Double.sum(x : Int): Double = this + x
학습 출처
테크과학! DiMo-디모의 Kotlin 강좌 (lesson 23)
(www.youtube.com/playlist?list=PLQdnHjXZyYadiw5aV3p6DwUdXV2bZuhlN)
구독과 좋아요 !