CS/Kotlin

[Kotlin 문법] 6. 함수 - Unit, default parameter value, single-expression, named argument

졔졔311 2024. 6. 7. 16:28
728x90
반응형

이전에는 main 함수의 구성에 대해서만 살펴보았다.

그래서 이번에는 사용자가 정의하는 함수를 만드는 법을 보려고 한다.

 


함수 만들기 - Unit

우선, 기본 구조는 다음과 같다.

fun [함수명]([변수명1]: [타입], [변수명2]: [타입], ..., [변수명]: [타입]): [리턴 타입]{
	return [리턴값]
}

즉, 무조건 타입을 : 뒤에 써준다고 보면 된다.

리턴할 값이 없으면 return type과 return 문구가 생략될 수 있다.

생략된 것을 Unit type이라고 부른다.

명시적으로 함수 내에서 "return" 또는 "return Unit"이라고 해도 되고, 아무것도 안 써줘도 똑같이 실행된다.


함수 만들기 - default parameter value

 

함수를 만들 때 default value를 만들어 두면, 함수 호출 시 그 parameter의 값을 넘겨주지 않아도 정상적으로 실행된다.

그 parameter의 값의 기본 값을 지정해두고 사용하도록 하는 것이다.

fun function(param1: String, param2: String = "default"){
}

이런 방식으로 default value를 선언해줄 수 있고,

function("a","b")를 호출하면 param1은 "a", param2는 "b"라는 값을 갖게되지만

function("a")를 호출하면 param1은 "a", param2는 "default"라는 값을 갖게 된다.

 


 

함수 만들기 - single-expression

예를 들어, 두 수를 더해 리턴하는 sum()이라는 함수가 있다고 치자.

fun sum(x:Int, y:Int): Int{
	return x+y
}

 

이 함수는 사실, 몹시 단순하기 때문에 줄여 쓰는 것이 편하다.

따라서 함수를 줄여 쓸 수 있는 방법을 제공한다.

fun sum(x: Int, y: Int) = x + y

즉, 어차피 kotlin에서 type casting을 해줄 것이므로 return type도 생략하고, {}와 'return'이라는 말도 생략하고 쓰는 것이다.

fun sum() = x+y라고 줄여쓸 수 있게 되었다!

 


함수 호출하기 - named arguments

함수를 호출하는 방법은 사실, 다른 언어들이랑 다르지 않다.

함수 명과 함께, 넘겨줄 parameter를 전해주면 끝이다.

function(a, b) 이런식으루!

 

그런데 named argument라는걸 사용해 명시적으로 어떤 parameter에 값을 전해주는지를 보여줄 수 있다는 것이 다른 점이다.

호출부에서 어떤 parameter에 어떤 값을 넘기는지 바로 보이기 때문에, 코드 가독성이 높아지고,

순서에 상관없이 parameter를 넘겨줄 수 있다는 장점이 있다.

function(param2=a, param1=b) 이렇게 쓰면 된다.

 

 

 

728x90
반응형

'CS > Kotlin' 카테고리의 다른 글

[Kotlin 문법] 8. Class  (1) 2024.06.12
[Kotlin 문법] 7. Lambda expression  (0) 2024.06.12
[Kotlin 문법] 5. loop - range, for, while  (0) 2024.06.07
[Kotlin 문법] 4. 조건문 - if, when  (0) 2024.06.07
[Kotlin 문법] 3. Collection 자료구조  (1) 2024.06.05