함수의 기본 형태
fun 함수이름(매개변수: 매개변수 타입) : 반환 타입 {
//함수 동작
}
Top-level function과 member function
class Shape {
fun calculateArea_method(w: Int, h: Int, ): Int { // member function = method
return w * h
}
}
fun calculateArea_top_level(w: Int, h: Int, ): Int { // top-level function
return w * h
}
- Top-level function: 클래스 밖에 생성된 함수
- Member function: 클래스에 속한 함수
가변 인자
: 인자의 개수가 달라질 수 있다.
fun accSum(vararg list: Int){
var sum = 0
for (item in list) {
sum += item
println("sum = $sum")
}
}
fun main() {
val arr: IntArrya = intArrayof(1, 2, 3)
accSum(1, 2, 3, 4)
accSum(1, 2, 3, 4, 5, 6)
accSum(*arr) //배열자체를 인자로
}
함수를 {} 대신 expression(식)으로
: { } 처럼 block에 함수의 동작이 들어가 있는 것을 expression으로 변경할 수 있다.
//[block]
fun max(a: Int, b: Int): Int {
if(a > b) {
return a
} else{
return b
}
}
//[expression - 1]
fun max(a: Int, b: Int) =
if(a > b) {
a
} else{
b
}
//[expression - 2] -> 한줄로
fun max(a: Int, b: Int) = if (a > b) {a} else {b}
식으로 표현하는 방법은 2가지가 있다. 출력 타입과 { }만 생략한 형태, 출력 타입과 { }를 생략하고 한 줄로 작성한 형태가 있다.
'2학년 2학기 > 모바일 소프트웨어 - 코틀린' 카테고리의 다른 글
고차함수(2) - 응용편 (0) | 2024.10.10 |
---|---|
고차함수(1) - 선언과 사용 (0) | 2024.10.10 |
Class(1) - 중첩 클래스와 내부 클래스 (0) | 2024.10.01 |
Class(1) - 추상 클래스와 인터페이스 (0) | 2024.10.01 |
Class(1) - 상속 (0) | 2024.10.01 |