2022-09-28(수요일)

함수 선언하기

코틀린에서 함수를 선언하려면 fun이라는 키워드를 이용해야 한다.

함수에는 반환 타입을 선언할 수 있으며 생략하면 자동으로 Unit타입이 적용된다

fun 함수명(매개변수명 : 타입) : 반환타입 {...}

반환 타입이 있는 함수 선언

fun some(data1 : Int) : Int {
	return data1 * 10
}

함수의 매개변수에는 var나 val키워드를 사용할 수 없다. val이 자동으로 적용되며 함수 안에서 매개변숫값을 변경할 수 없다.

매개변숫값 변경 오류

fun some(data1 : Int){
	data1 = 20		// 오류!
}

함수의 매개변수에는 기본값을 선언할 수 있다. 만약 어떤 매개변수에 기본값을 선언했다면 호출할 때 인자를 전달하지 않아도 되며 이때 선언문에 명시한 기본값이 적용된다.

기본값 활용

fun main(){
	fun main(data1 : Int, data2 : Int = 10) : Int{
		return data1 * data2
	}
	println(some(10))
	println(some(10, 20))
}

// 실행결과!
// 100
// 200

어떤 함수의 매개변수가 여러 개면 호출할 때 전달한 인자를 순서대로 할당한다. 즉, 첫 번째 인자를 첫 번째 매개변수에 할당한다. 그런데 호출할 때 매개변수명을 지정하면 매개변숫값의 순서도 바뀌게 된다.

매개변수명 생략 - 매개변수 순서대로 할당

fun some(data1 : Int, data2 : Int) : Int{
	return data1 * data2
}

println(some(10, 20))

매개변수명을 지정하여 호출

some(data2 = 20, data1 = 10)

위 소스처럼 some()이라는 함수에 매개변수를 2개 선언하고 some(10, 20)으로 함수를 호출하면 data1에 10, data2에 20을 대입한다.

매개변수명을 지정하여 호출하는 것을 명명된 매개변수라고 하며, 이렇게 하면 함수 선언문의 매개변수 순서에 맞춰 호출하지 않아도 된다.