본문 바로가기

PROGRAMMING/KOTLIN

[KOTLIN] 간단하게 계산기능 구현해보기

공부 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