[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]