파게로그

[Basic] 자료형, 변수 선언 본문

콤퓨타 왕기초/Kotlin

[Basic] 자료형, 변수 선언

파게 2021. 6. 7. 12:22

Kotlin의 변수 선언

1. 원칙은 선언 시 초기화하는 것으로서, 타입을 반드시 지정해야 하는 것은 아니다.

 

var height = 1.8
var weight = 70
var age: Int = 19

val nationality: String = "Korean"
val name = "철수"

println(height)
println(weight)
println(age)
println(nationality)
println(name)

 

2. 아래와 같이 선언 후 초기화할 수도 있다. 다만 이 때에는 타입 지정이 필수적이다.

 

fun main(args : Array<String>) {
    var city: String
    val population: Int
    
    city = "Busan"
    population = 350
    
    println(city)
    println(population)
}

참고로, IntelliJ IDEA에서는 변수 내에 커서를 두고 Ctrl+Shift+P를 눌러 타입을 확인할 수 있다.

 

Kotlin의 built-in types

Numbers

Byte (8-bit signed two's complement integer) [-128, 127]

▪ Short (16-bit signed two's complement integer) [-32768, 32767]

▪ Int (32-bit signed two's complement integer) [-231, 231-1]

▪ Long (64-bit signed two's complement integer) [-263, 263-1]

별도로 명시하지 않아도 Int 범위를 벗어나는 숫자를 변수에 할당하면 Long타입으로 할당된다.

val distance = 10000000000 // type Long. not explicitly specified
val speed = 100L // type Long. explicitly specified

▪ Float (a single-precision 32-bit floating point)

val distance = 11.3F

▪ Double (a double-precision 64-bit floating point)

val distance = 13.1

▪ Number

어떤 값이 할당될지 확실하지 않을 때, Number type을 지정해줄 수 있다.

fun main(args : Array<String>) {
    var test: Number = 12.2
    println(test)

    test = 12
    // Int smart cast from Number
    println(test)

    test = 120L
    // Long smart cast from Number
    println(test)
}

 

Characters

▪ Char

Java와 달리 숫자로 다루어질 수 없다. 대신 inc(), dec(), compareTo()Char 타입에 사용할 수 있는 함수들이 제공된다.

var letter: Char = 65 // Error

 

Booleans

Java와 동일하다.

 

Arrays

Array 클래스로 표현된다. 이는 get 함수, set 함수 외 몇몇 유용한 멤버 함수와 size라는 property를 포함한다.

 

Strings

String 클래스로 표현된다. "Hello world!"는 String 클래스의 인스턴스로 구현된다.

'콤퓨타 왕기초 > Kotlin' 카테고리의 다른 글

[Basic] Input and Output  (0) 2021.06.07
[Basic] Expression, Statement, Block  (0) 2021.06.07
[Basic] 형 변환(type casting)  (0) 2021.06.07
[Basic] 연산자  (0) 2021.06.07
Kotlin 학습을 위한 자료  (0) 2021.06.06
Comments