코틀린 파일의 확장자는 ‘.kt’ 입니다. 다음은 User.kt라는 이름의 코틀린 파일에 package와 import 구문을 선언하고 data라는 변수, formatData()라는 함수, 그리고 User라는 클래스를 선언한 예이다
//페키지
package com.example.test3
//임포트
import java.text.SimpleDataFormat
import java.util.*
//변수
var data = 10
//함수
fun formatData(date: Date):String{
valsdformat = SimpleDateFormat("yyyy-mm-dd")
return sdformat.format(date)
}
//클래스
class User{
var name = "hello"
fun sayHello(){
println("name : $name")
}
}
코틀린에서 변수는 val, var 키워드로 선언합니다. val은 value의 줄임말로 초깃값이 할당되면 바꿀 수 없는 변수를 선언할 때 사용합니다. var는 variable의 줄임말로 초깃값이 할당된 후에도 값을 바꿀 수 있는 변수를 선언할 때 사용합니다.
val data1 = 10
var data2 = 10
fun main(){
data1 = 20 //error
data2 = 20 //success
}
변수명 뒤에 콜론(:)을 추가해서 타입을 명시할 수 있으며, 대입하는 값에 따라 타입을 유추할 수 있을 때는 생략할 수 있습니다.
val data1: Int = 10
val data2 = 10
위 소스에서 data1은 명시적으로 Int 타입을 선언한 것이며 data2는 대입한 값이 10이므로 타입을 명시하지 않아도 자동으로 Int타입이 됩니다. 즉, val data2: Int = 10이라고 선언한 것과 같다.
최상위에 선언한 변수나 클래스의 멤버 변수는 선언과 동시에 초깃값을 할당해야 하며, 함수 내부에 선언한 변수는 선언과 동시에 초깃값을 할당하지 않아도 됩나다. 물론 변수를 이용하려면 값을 할당하고 이용해야 합니다.
val data: Int //error
val data2 = 10 //success
fun someFun(){
val data3: Int
println("data3 : $data3") // error
data3 = 30
println("Data3 : $data3") //success
}
class User{
val data4: Int //error
val data5 Int = 10 //success