함수 선언 문법

//java
public int max(int a, int b) {
	if (a > b){
		return a;
	}
	return b;
}

//kotlin
//1 - public은 생략 가능
fun max(a: Int, b: Int): Int{
	if (a > b){
		return a
	}
	return b
}

//2 - if -else는 expression
fun max(a: Int, b: Int): Int{
	return if (a > b){
		a
	} else{
		b
	}
}

//3 - 함수가 하나의 결과 값이면 block 대신 = 사용 가능
fun max(a: Int, b: Int): Int =
	if (a > b){
		a
	} else{
		b
	}
	
//4 - 한 줄로 변경 가능
fun max(a: Int, b: Int): Int = if (a > b)	a else b

//5 - =을 사용하는 경우 반환 타입 생략 가능
fun max(a: Int, b: Int) = if (a > b)	a else b

default parameter

Java

public void repeat (String str, int num, boolean useNewLine) {
	for (int i = 1; i <= num; i++) { 
		if (useNewLine) {
			System.out.println(str);
		} else {
			System.out.println(str);
		}
	}
}
public void repeat (String str, int num) {
	repeat(str, num, true);
}

public void repeat (String str) {
	repeat(str, 3, true);
}

kotlin

fun repeat(
	str : String,
	num : Int = 3,
	useNewLint : Boolean = true // default parameter
) {
	for (i in 1..num) {
		if (useNewLine) {
			println(str)
		}else {
			println(str)
		}
	}
}

repeat("HELLO")

named argument(parameter)

//useNewLine 값 명시(named argument)
//num은 기본 값 사용
repeat("HELLO", useNewLine = false)