코틀린이 나오고 안드로이드의 공식 언어로 채택된 지도 꽤 시간이 흘렀으나 이제야 공부하게 된 나 자신을 반성 또 반성.. 늦게나마 공부를 시작하게 되었다.

일단 올해 내로 공공 API를 사용하는 앱을 만들어 서비스하는 것을 목표로 열심히 해 보기로..

------------

이번 시간에는 기본 변수형의 차이에 대한 차이를 학습하였다.

 

1. val 변수 (value)

fun main() {
    val first = "Hello"	//변경 불가능한 변수
    
    println(first)
	//first = "Hello2"	//변경 불가(에러)

}
<코드 실행 결과>
Hello

val 은 Java의 fianl 변수와 대응하며, 값이 한 번 할당되면 이를 변경할 수 없다.

위의 코드에서 fist = "hello2" 부분을 주석해제하면 에러가 발생하게 된다.

 

2. var 변수 (variable)

fun main() {
    var second:String = "TEST";
    var third:String? = null
    
    println(second)
    second = "WORLD"
    println(second)

    println(third)
}
<코드 실행 결과>
TEST
WORLD
null

var 은 일반적인 변수로, 값을 여러 번 할당할 수 있다.

자료형 뒤에 ? 가 붙으면 해당 변수에 null을 할당할 수 있다는 것을 의미한다.

 

사실 꼭 초기값을 할당해주지 않고 var {변수명}:{자료형} 으로 쓸 수 있다.

var number:Int

 

3. 함수(function)

fun main() {
    var third:String? = null
    
    println(third)
    third = getString()
    println(third)
    third = getSum(2, 5)
    println(third)

    end()
}

fun getString() : String {
    return "GET STRING FROM METHOD";
}

fun getSum(i : Int, i2 : Int) : String {
    return "get Sum (" + i + " + " + i2 + " = " + (i+i2) + ")"
}

fun end() {
    println("end of line")
}
<코드 실행 결과>
null
GET STRING FROM METHOD
get Sum (2 + 5 = 7)
end of line

함수 선언 시 fun 이라는 키워드를 사용한다.

반환값이 있는 경우 (getString(), getSum()) 변수 선언 시와 마찬가지로 함수명 뒤에 자료형을 적어주고, 반환값이 없는 경우에는 이를 생략할 수 있다. 

JAVA와의 차이라면 자료형이 앞에 위치하냐 뒤에 위치하냐의 차이가 아닌가 싶다.

'개발 > Kotlin' 카테고리의 다른 글

코틀린 공부 - 함수(1)  (0) 2021.08.02
코틀린 기초 5 - object  (0) 2020.06.25
코틀린 기초 - 4(고차함수, 람다)  (0) 2020.06.24
코틀린 기초 - 3 (if~else, when)  (0) 2020.06.23
코틀린 기초 - 2 (배열, 반복문)  (0) 2020.06.16

+ Recent posts