프로그래밍 언어/코틀린 기본

[코틀린 기초] 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)

구독과 좋아요 !