티스토리 뷰

변수 선언방식

  • val / var
방식 타입
val (value) 불변 (자바의 final과 같음)
var (variable) 가변
val test ="hello"
test = "world" // error

var test1 = "hello"
test1 = "world" // ok

기본 타입

  • 자바와 코틀린의 큰 차이점중 하나는 코틀린의 경우 모든것이 객체임.
    • 이로인해 자바와는 다르게 원시 타입이 없음.
    • 실제로 없는게 아니라 코틀린이 자동으로 원시 타입을 쓸건지 래퍼 클래스를 쓸건지 결정한다.

숫자

타입 길이 비교
Long 64  
Int 32 정수 체계의 기본값
Short 16  
Byte 8  
Double 64 부동소수점 수 체계 기본값
Float 32  
val int = 123
val long = 123456L
val double = 1234
val float = 12.34F
  • 코틀린은 자동으로 값을 확장하지 않으므로 명시적으로 변환해야함.
  • 자바의 경우 자동으로 형변환 해줌.

코틀린

val otherInt = 123
val otherLong = otherInt
println(otherLong.javaClass.kotlin.qualifiedName) // kotlin.Int

val otherLong2 = 123.toLong()
println(otherLong2.javaClass.kotlin.qualifiedName) // kotlin.Long

자바

public class Variable {
    public static void main(String[] args) {
        int otherInt = 123;
        long otherLong = otherInt;
        System.out.println(((Object)otherLong).getClass().getName()); // java.lang.Long
    }
}

불리언

  • 논리곱과 논리합은 느슨하게 평가되어 왼쪽에서 조건을 만족시 오른쪽은 평가하지 않는다.
val boolean = 1 < 2

 


문자 및 문자열

문자

  • 단일 문자를 나타낸다.
  • 문자 리터럴은 ` 와 같은 단일 따옴표를 사용한다.
  • 자바에서처럼 숫자로 다뤄지지 않는다.

코틀린

val char = 'A'
val char2: Char = 12 // Error!

자바

char a = 12; // OK!

문자열

  • 자바와 같이 불변으로 생성됨.
  • 이중 따옴표 또는 삼중 따옴표로 생성됨.
종류 내용
이중 따옴표

이스케이프된 문자열 생성

개행과 같은 특수문자는 반드시 이스케이프되야함.

삼중 따옴표

원시 문자열 생성

이스케이프가 필요치 않으며 모든 문자 포함 가능

작성한 그대로 출력된다고 생각하면 된다.

이중 따옴표

val twoQuote = "Hello\nKotlin"

[결과]

Hello
Kotlin

삼중 따옴표

val threeQuote = """Hello\nKotlin
HiHI
"""

[결과]

Hello\nKotlin

HiHI


문자열 템플릿

  • 표현식과 문자열 리터럴을 혼합하기 위해 손쉬운 방법을 제공
  • 접두사로 $기호를 사용하며 표현식의 경우 ${표현식}으로 사용한다.
val hello = "Hello"
val kotlin = "kotlin"
println("$hello ${kotlin.toUpperCase()}") // Hello KOTLIN

참조 사이트

댓글