식이 본문인 함수
중괄호 대신 =(등호)를 식에 붙이기, return 제거
fun max(a:Int, b:Int): Int = if (a>b) a else b
+ 블록의 마지막 식이 블록의 결과
// if 사용하기
fun eval(e: Expr): Int =
if (e in Num) {
e.value
} else if (e is Sum) {
eval(e.right) + eval(e.left)
} else {
throw java.lang.IllegalArgumentException("Unknown expression")
}
// when 사용하기
fun eval(e: Expr): Int =
when (e) {
is Num ->
e.value
is Sum ->
eval(e.right) + eval(e.left)
else ->
throw java.lang.IllegalArgumentException("Unknown expression")
}
블럭이 본문인 함수
본문이 중괄호에 둘러싸인 함수, return 필요
fun max(a:Int, b:Int):Int {
return if (a>b) a else b
}
+ 블록의 마지막 식이 블록의 결과
내부에 return 필요
fun eval(e: Expr): Int {
if (e is Num) {
val n = e as Num
return n.value
}
if (e is Sum) {
return eval(e.right) + eval(e.left)
}
throw IllegalArgumentException("Unknown expression")
}