유튜브의 '센치한개발자' 채널의 코틀린 강의를 들으면서 하는 벼락치기 공부입니다!

기본적인 부분은 유튜브 강의로 보고 나서 3년 전에 산 책 한 번 더 읽어야겠다..

 

 

 

1. 배열(listOf) + 반복문(for)

fun main() {
    var arr = listOf("가", "나")	//변경 불가능한 배열
    
    //기본 반복문
    for(item in arr) {
        println(item);
    }
}
<코드 실행 결과>
가
나

listOf로 생성한 배열은 구조를 변경할 수 없다.

즉 JAVA의 Array와 비슷하다고 볼 수 있겠다.

 

반복문의 경우 for을 사용했는데, 

자바의 foreach문(향상된 반복문)과 비슷한 모양새를 하고 있다.

 

2. 배열(mutableListOf()) + 반복문 (for ... withIndex())

fun main() {
    var arr2 = mutableListOf("A", "B")	//변경 가능한 배열

    //index 값 가져오는 배열문
    for((index, item) in arr2.withIndex()) {
        println("$index / $item");
    }
}
<코드 실행 결과>
0 / A
1 / B

mutableListOf() 로 생성한 배열은 구조를 변경할 수 있다. (add(), remove())

즉 JAVA의 LIST와 비슷하다고 볼 수 있다.

 

이 코드에서 쓰인 for문은 첫번째 것과 모양이 비슷하면서 다른데

첫 번째 반복문은 단순히 안에 들어있는 값만 가져오면 될 때 쓴다면

이건 현재 몇 번째 실행중인지에 대한 index값을 가져오려 할 때 사용할 수 있다.

 

 

 

 


이전부터 생각했지만 코틀린이라는 녀석.. 굉장히 대충대충(?)인 느낌인 게..

String이든 Int든 일단 val아니면 var로 때웠는데

이번에 배열 선언할 때도 기대를 저버리지 않고(?) var 또는 val를 이용하여 선언할 수 있다는 걸 볼 수 있다.

게으른 개발자를 위해서인걸까...?

'개발 > 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
코틀린 기초 - 1  (0) 2020.06.16

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

일단 올해 내로 공공 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