테크과학! DiMo
개발 환경: play.kotlinlang.org
fun main() {
read(7)
read("감사합니다")
}
fun read(x: Int) {
println("숫자 $x 입니다")
}
fun read(x: String) {
println(x)
}
Output:
숫자 7 입니다
감사합니다
파라미터를 받아야 하는 함수이지만 별다른 파라미터가 없더라도 기본 값으로 동작해야 한다면
default arguments를 사용한다.
fun main() {
deliveryItem("짬뽕")
deliveryItem("책", 3)
deliveryItem("노트북", 30, "학교")
deliveryItem("선물", destination = "친구 집")
}
fun deliveryItem(name: String, count: Int = 1, destination: String = "집") {
println("${name}, ${count}개를 ${destination}에 배달하였습니다")
}
Output:
짬뽕, 1개를 집에 배달하였습니다
책, 3개를 집에 배달하였습니다
노트북, 30개를 학교에 배달하였습니다
선물, 1개를 친구 집에 배달하였습니다
named arguments
파라미터의 순서와 관계 없이 파라미터의 이름을 사용하여 직접 파라미터의 값을 할당하는 기능
variable number of arguments(vararg)
같은 자료형을 갯수에 상관없이 파라미터로 받고 싶을 때 사용
fun main() {
sum(1, 2, 3, 4)
}
fun sum(vararg numbers :Int) {
var sum = 0
for (n in numbers)
{
sum += n
}
print(sum)
}
Output: 10
vararg는 갯수가 지정되지 않은 파라미터라는 특징이 있으므로 다른 파라미터와 같이 쓸 때는 반드시 맨 마지막에 위
치 해야 한다
infix함수
연산자처럼 쓸 수 있는 함수
fun main() {
println(6 multiply 4)
// 좌측에 붙은 6이 infix 함수가 적용되는 객체 자신 즉, this에 해당
// 우측에 붙은 4가 파라미터인 x에 해당
println(6.multiply(4)) // 일반적인 클래스의 함수처럼 사용하는 것도 가능
}
infix fun Int.multiply(x: Int): Int = this * x
Output:
24
24
참고로 class 안에서 infix 함수를 선언할 때에는 적용할 클래스가 자기 자신이므로 클래스 이름은 쓰지 않는
다.
'Kotlin > 기본 문법' 카테고리의 다른 글
코틀린 강좌 #24 Data Class 와 Enum Class (0) | 2020.12.24 |
---|---|
코틀린 강좌 #23 중첩클래스와 내부클래스 (0) | 2020.12.24 |
코틀린 강좌 #21 null 값을 처리하는 방법? 동일한지를 확인하는 방법? (0) | 2020.12.24 |
코틀린 강좌 #20 문자열을 다루는 법 (0) | 2020.12.20 |
코틀린 강좌 #19 리스트 (0) | 2020.12.20 |