Kotlin에서는 다음과 같은 방식으로 함수를 선언한다.
fun {식별자}({인자}:{type} ...):{반환타입}
{
}
또한 함수 선언을 간략화 할 수 있다.
fun {식별자}({인자}:{type} ...):{반환타입} = ...
fun function(a:Double):Double
{
return 3.0 + 7 + a
}
// 함수 선언 간략화
fun function(a:Double):Double = 3.0 + 7 + a
fun function(a:Double) = 3.0 + 7 + a
Unit type은 Java나 C에서 사용하는 문법 중 void와 같은 역활을 한다.
fun myFunction(a:Int, b:Int):Unit
{
println("a: " + a + ", b: " + b)
}
// return type 을 생략 가능
fun myFunction(a:Int, b:Int)
{
println("a: " + a + ", b: " + b)
}
// 함수를 다음과 같이 간략화도 가능
fun myFunction(a:Int, b:Int) = println("a: " + a + ", b: " + b)
Default 인수를 C/C++과 같이 초기 값을 선언할 수 있다.
그리고 함수를 실질적으로 사용할 시, 값만 선언하여 사용할 수 있으나, 파라메터 이름을 이용하여, 값을 설정할 수 있다.
예제는 다음과 같다.
funDefaultTest(89, 96)
funDefaultTest(89, 96, true)
funDefaultTest(90)
funDefaultTest(66, print = true)
funDefaultTest(print = true)
funDefaultTest(print = true, a = 10, b = 23)
// 함수 인자 값 초기과
fun funDefaultTest(a:Int = 0, b:Int = 0, print:Boolean = false) : Double
{
var result = (a + b) / 2.0
if(print)
println(result)
return result
}
N개의 인수를 받는 함수를 선언할 수 있다. (가변 인수)
사용 방법은 vararg라는 키워드를 사용하여, 가능하다.
또한 가변 인수에 대해서 선언하지 않는다고 하더라도 가변 인수의 size 값이 0으로 받아오기 때문에 정상적으로 처리할 수 있다.
해당 내용에 대한 예제는 다음과 같다.
fun main(args: Array<String>) {
testVarargFun(1,2,3,4,5,6,7)
testVarargFun(32, 57,12)
testVarargFun()
}
fun testVarargFun(vararg numbers:Int) : Int
{
var count:Int = numbers.size
var i:Int = 0; var sum:Int = 0
while(i < count)
{
sum += numbers[i]
i++
}
return sum
}
// 가변 인수는 일반 인수와 같이 병행하여 사용이 가능
fun testVarargFun(something:Char, vararg numbers:Int) : Int
fun testVarargFun(vararg numbers:Int, something:Char) : Int
참고 : 초보자를 위한 Kotlin 200제 라는 책을 기반으로 공부 내용을 정리하였습니다.
'Kotlin' 카테고리의 다른 글
[Kotlin] inline 함수 (0) | 2020.08.29 |
---|---|
[Kotlin] 객체 선언 및 동반자 객체 (0) | 2020.08.29 |
[Kotlin] 기초 - typealias, 제어문 (0) | 2020.08.27 |
[Kotlin] 기초 - 정수/실수/문자 타입과 문자열 (0) | 2020.08.27 |
[Kotlin] 기초 - 변수 / 연산자 (0) | 2020.08.26 |