접근 지시어 fun 함수 이름(파라미터): 반환타입 {
}
// 자바의 함수
public int max(int a, int b) {
if (a > b) {
return a;
}
return b;
}
// 코틀린의 함수
fun max(a: Int, b: Int): Int {
return if (a > b) {
a
} else {
b
}
}
{}
대신 =
을 사용해 함수를 작성할 수도 있다.fun max(a: Int, b: Int): Int =
if (a > b) {
a
} else {
b
}
}
fun
- 함수를 의미하는 키워드public
이 생략되어 있기에 fun
만 작성하면 public
이다.매개변수명: 타입
]으로 작성한다.void
인 경우 생략 가능=
사용 가능=
을 사용하는 경우 타입을 추론할 수 있기에 반환 타입을 생략해도 된다.
{}
을 사용하는 경우 반환 타입이 Unit
이 아니라면 타입을 명시해야 한다.fun max(a: Int, b: Int) = if (a > b) a else b
// 출력할 문자열, 반복 횟수, 개행 여부를 받아 문자열을 반복 출력하는 메서드
public void repeat(String str, int num, boolean useNewLine) {
// ...
}
public void repeat(String str, int num) {
repeat(str, num, true);
}
public void repeat(String str) {
repeat(str, 3, true);
}
fun repeat(
str: String,
num: Int = 3,
useNewLine: Boolean = true
) {
// ...
}
num
은 3을 그대로 쓰고 useNewLine
은 false
를 쓰고 싶은 경우fun main() {
repeat("Hello Wiorld", useNewLine = false)
}
fun main() {
printNameAndGender(
name = "does",
gender = "MALE"
)
}
…
을 쓰지 않고 vararg
키워드를 사용한다.*
를 붙여야 한다.fun printAll(vararg strings: String) {
for (str in strings) {
println(str)
}
}
fun main() {
printAll("A", "B", "C")
val array = arrayOf("A", "B", "C")
printAll(*array)
}