Today I Learned

Java 개발자를 위한 코틀린 필수 사항 본문

Kotlin/다재다능 코틀린 프로그래밍

Java 개발자를 위한 코틀린 필수 사항

하이라이터 2023. 7. 20. 17:33
728x90

코틀린은 Java를 사용할 때보다 훨씬 간결하게 코드를 작성할 수 있다.

 

더 적은 타이핑

  • 세미콜론은 생략해도 된다.
  • 변수타입 지정은 생략해도 된다.
  • 클래스와 함수는 생략 가능하다.
  • try-catch는 선택사항이다.

 

현명한 경고

  • 사용하지 않는 파라미터에 대한 경고를 준다.

 

var 보다는 val

  • 코틀린에서는 변수 이름을 먼저 쓰고 타입을 명시한다.(변수이름:타입)
val pi: Double = 3.14
  • val은 java의 final과 비슷하게 값을 변경할 수 없다.
  • 변수의 값을 바꾸려면 var을 사용하면 되지만 함수형 프로그래밍을 위해 피하는 것이 좋다.

 

향상된 동일성 체크

  • Java의 equal() 메소드 or 코틀린의 == 연산자 : 값을 비교 (구조상의 동일성)
  • Java의 == 연산자 or 코틀린의 === 연산자 : 참조 대상을 비교(참조상의 동일성)
  • 코틀린의 == 연산자는 nullPointerException을 발생시키지 않고 null을 안전하게 다룬다.

 

문자열 템플릿

  • 큰따옴표 문자열 안에서 $ 심볼을 변수 앞에 붙여주면 어떤 변수라도 문자열 안에 들어간다.
  • 복잡한 명령문이라면 ${}로 감싸서 사용할 수 있다.
  • $ 심볼 뒤에 변수 이름이나 표현식이 없거나 역슬래시가 붙으면 $ 심볼은 문자로 취급된다.
val price = 12.25
val taxRate = 0.88
val output = "The amount $price after tax comes to $${price * (1 + taxRate)}"
val disclaimer = "The amount is in US$, that's right in \$only"
println(output)
println(disclaimer)
The amount 12.25 after tax comes to $13.23
The amount is in  US$, that's right in $only

 

RAW 문자열

  • 큰따옴표 3개(""")를 입력해서 raw 문자열을 사용할 수 있다.
  • 이스케이프 문자 없이 다양한 문자를 그대로 넣을 수 있다.
  • 멀티라인 문자열 : + 연산자 없이 여러 줄의 문자열에 문자열 템플릿을 적용할 수 있다.
  • 함수 안에서 raw 문자열을 사용하는 경우, 수직선(|) 문자를 사용하면 들여쓰기 공백을 제거할 수 있다.

 

표현식은 더 많이, 명령문은 적게

  • 명령문 보다는 표현식이 좋다. 표현식은 결과를 리턴해주고, 어떤 상태도 변화시키지 않는다.
  • 차이를 확인하기 위해 먼저 Java 같은 스타일로 코틀린 코드를 작성해보자.
fun canVote(name: String, age: Int): String {
  var status : String
  if (age > 17) {
    status = "yes, please vote"
  } else {
    status = "nope, please come back"
  }
  return "$name, $statue"
}
println(canvote("Eve", 12))
  • 명령문은 아무런 리턴값을 주지 않기 때문에, canVote()에서는 뮤터블 변수를 만들고 메소드 안에서 해당 변수를 수정해야 한다.
  • 하지만 코틀린의 if는 명령문 대신 표현식으로 사용된다.
val status = if(age > 17) "yes, please vote" else "nope, please come back"
return "$name, $status"
728x90
Comments