argument 처리법과 Infix 함수 > IT 기술백서

[code]

fun main() {

    read(1)

    read(“안녕하세요”)

    

    println()

    

    // 변수 순서에 따른 호출

    deliveryItem(“짬뽕”)

    deliveryItem(“책”, 3)

    deliveryItem(“노트북”, 30, “학교”)

    

    // 변수이름을 직접 지정

    deliveryItem(“노트북”, destination=”친구집”)

    

    println()

    

    // 가변 arguments

    sum(1, 2, 3, 4, 5)

    

    // Infix 함수

    println(6 multiply 4)

    println(6.multiply(4)) // 위와 동일하지만 다른 표기법

}

fun read(x: Int) {

    println(“숫자 ${x}입니다”)

}

fun read(x: String) {

    println(x)

}

// 기본값 지정된 argument

fun deliveryItem(name: String, count: Int=1, destination: String = “집”) {

    println(“${name}, ${count}개를 ${destination}에 배달했습니다”)

}

// vararg: 가변갯수의 arguments 허용 (맨 마지막에 존재해야 한다)

fun sum(vararg numbers: Int) {

    var sum = 0

    

    for (n in numbers){

        sum += n

    }

    

    println(sum)

}

// InFix 함수: 사용자정의 연산자와 비슷한 개념

infix fun Int.multiply(x: Int): Int = this * x

// 클래스에 Infix 함수를 쓸때는 참조자가 자기자신이므로 함수이름만 쓴다.

class Test {

    infix fun multiply(x: Int): Int = this * x

}

 

[/code]

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤