반응형
package com.example.mykotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val result: Int = 3

        print(result)
        Log.v("Crocus", "result : $result")
//        result = 4 // Can't change value

        var mutableResult: String = "hello"
        Log.v("Crocus", "mutableResult1 : $mutableResult")

        mutableResult = "world"
        Log.v("Crocus", "mutableResult2 : $mutableResult")

        var initValue: Int
//        print(initValue) // Can't build because of null

        var a: Int = 3
//        a = null // Compile error, a must be not null

        var b: Int? = 4 // Int? -> can be null or not
        Log.v("Crocus", "b1 : $b")

        b = null
        Log.v("Crocus", "b2 : $b")

        Log.v("Crocus", "hello : ${b}")

        val aList: List<Int> = listOf(1,2,3) // aList는 불변
        Log.v("Crocus", aList[2].toString()) // index에 해당하는 아이템을 출력한다.
//        aList.add(3) // 불변인 배열은 추가를 할 수 없다.
//        aList.remove(2) // 불변인 배열은 삭제를 할 수 없다.

        val bList: MutableList<Int> = mutableListOf(1,2,3) // mutableListOf()을 이용하여 변경 가능한 배열 생성

        Log.v("Crocus", "bList1 : " + bList[2].toString()) // index에 해당하는 아이템을 출력한다.
        bList.add(4)
        print(bList)
        Log.v("Crocus", "bList2 : " + bList.toString())
        bList.remove(2) //
        Log.v("Crocus", "bList3 : " + bList.toString())
        print(bList) // [1, 3, 4]


    }
}

 

2021-07-26 23:37:51.640 15493-15493/com.example.mykotlin V/Crocus: result : 3
2021-07-26 23:37:51.640 15493-15493/com.example.mykotlin V/Crocus: mutableResult1 : hello
2021-07-26 23:37:51.640 15493-15493/com.example.mykotlin V/Crocus: mutableResult2 : world
2021-07-26 23:37:51.640 15493-15493/com.example.mykotlin V/Crocus: b1 : 4
2021-07-26 23:37:51.640 15493-15493/com.example.mykotlin V/Crocus: b2 : null
2021-07-26 23:37:51.640 15493-15493/com.example.mykotlin V/Crocus: hello : null
2021-07-26 23:37:51.651 15493-15493/com.example.mykotlin V/Crocus: 3
2021-07-26 23:37:51.653 15493-15493/com.example.mykotlin V/Crocus: bList1 : 3
2021-07-26 23:37:51.653 15493-15493/com.example.mykotlin V/Crocus: bList2 : [1, 2, 3, 4]
2021-07-26 23:37:51.653 15493-15493/com.example.mykotlin V/Crocus: bList3 : [1, 3, 4]

 

var : 가변 변수

val : 불변 변수

 

var variable: Int? = 4 // ?를 이용함으로써 nullable 표현

MutableList<Int> // 가변 리스트를 만들 수 있다

 

 

확실히 자바만 하다가 코틀린 해보니 새로워보인다. 좀더 배우면 자바랑 호환이 되니 kt로 짜보는 습관도 들여야겠다

(요즘 모든 안드로이드 코딩테스트는 kt로 하더라 카더라..)

반응형