공부 Skill
- 변수 선언
- Enum
- Interface
- Throw Exception
import java.lang.IllegalArgumentException
interface E
class Num(val value : Int) : E
class Add(val left : E, val right : E) : E
class Sub(val left : E, val right : E) : E
class Mul(val left : E, val right : E) : E
class Div(val left : E, val right : E) : E
fun eval(e : E): Int =
when(e){
is Num -> e.value
is Add -> eval(e.left) + eval(e.right)
is Sub -> eval(e.left) - eval(e.right)
is Mul -> eval(e.left) * eval(e.right)
is Div -> eval(e.left) / eval(e.right)
else -> throw IllegalArgumentException("Unknown expression")
}
class Main {
}
fun main(args : Array<String>){
println(eval(Add(Num(6), Num(3))))
println(eval(Sub(Num(6), Num(3))))
println(eval(Mul(Num(6), Num(3))))
println(eval(Div(Num(6), Num(3))))
}
내가 느낀 JAVA와 차이점
- int가 아니라 Int로 변수 선언
- 변수가 불변/가변 -> val/var로 분화됨
- is를 사용한 스마트 캐스트
- main에 파라미터가 없으면 굳이 안 적어도 됨
'PROGRAMMING > KOTLIN' 카테고리의 다른 글
| [KOTLIN] Collections - foldIndexed (0) | 2021.07.13 |
|---|---|
| [KOTLIN] 백준 10844번 쉬운 계단 수 (0) | 2021.07.01 |
| [KOTLIN] 다양한 for문 활용법 (0) | 2021.06.30 |