본문 바로가기

mobile software

코틀린(Kotlin) 기초 01

Kotlin 개요

: JVM 기반 언어 -> JAVA와 호환

▷ 특징

       - Null Safety 지원

       - JAVA와 호환

       - 비동기 프로그래밍 용이

 

ㅁ 변수의 사용 

변수의 선언

val(또는 var) 변수명 [:자료형] = 값

    ⊙ val : 변수 선언 시 초기화 값으로 값고정

    ⊙ var : 변수 선언 후 필요에 따라 값변경

    ⊙ 자료형을 생략했을 경우 초기화 값의 자료형으로 결정    / val myValue = 10 -> Integer 형

 

전역변수는 반드시 초기화 수행

 

 

 

 

 

 

 

 

초기화 지연

    ⊙ lateinit var 변수 : 자료형

           - var로 선언한 변수의 초기화 지연, 기본 자료형에는 적용불가

    ⊙ val 변수 [:자료형] by lazy { }

           - val 변수가 최초로 사용되는 순간 by lazy 블록이 실행되며, 초기 작업 및 초기화 수행 / 맨마지막에 작성

 

ㅁ 변수의 자료형

객체 자료형

    ⊙  모든 자료형은 객체 (Kotlin Int == Java Integer)

    ⊙  기본 : Int, Short, Long, Double, Byte, Boolean, Char

    ⊙  기본적으로 null 대입 불가                                                    +) var data01 : Int = null (X)

              - non-null type                                                                       var data02 : Int? = null (O)

              - 변수 선언시 ?를 기록하여 null 대입 가능                      객체니까 null값을 가질 수는 있으나

                                                                                                      문법적으로 막아놓음 NULL SAFETY 

 문자열 String                                                                            

    ⊙  "일반문자열" 또는 """띄어쓰기/탭/줄바꿈이 그대로 표현"""

Any, Unit, Nothing 자료형

    ⊙  Any : 모든 객체의 최상의 타입 (JAVA Object)

    ⊙  Unit : 반환타입이 없음으로 표시 (JAVA void와 유사)

    ⊙  Nothing : null 또는 Exception 반환 표시 (null의 경우 ? 사용)

 

ㅁ 함수의 사용

▷ 함수선언

fun 함수명 (매개변수명: 타입[, ...]) : 반환타입 { 함수본체 }

    ⊙  [반환타입]이 없을 경우 Unit 사용 또는 생략

    ⊙  매개변수는 val/var 키워드를 사용하지 않으면 val 취급 ( -> 매개변수는 기본적으로 값변경 불가능 : val 취급)

 

ㅁ 배열과 Collection

▷ 배열 Array

 : 메모리 상에 연속적으로 존재하는 변수들의 집합

   배열은 size 고정

val myArray : Array<Int> = Array(3 , {0})

기본 자료형 별 배열 선언

    ⊙  ~of : 배열생성함수

val intArray01 : Array<Int> = Array(3, {0})
val intArray02 = IntArray(3, {0})
val intArray03 = arrayOf<Int>(1,2,3)
val intArray04 = intArrayOf(4,5,6)

fun main() {
	println("array01 size : ${ intArray01.size }"
}

 

기본 Collection : List,Set,Map

 

    ⊙ Collection : 저장공간 크기의 실행 중 변경이 가능

            - List : 순서 O , 값중복 O

            - Set : 순서 X , 값중복 X

            - Map : key와 value의 집합으로 구성, key로 value 접근

 

    ⊙ 가변타입(mutable)과 불변타입으로 구분

val myList01 : List<Int> = List(3, {0})
val myList02 = listOf(1,2,3)
val myMuList01 : MutableList<Int> = MutableList(3, {0})
val myMuList02 = mutableListOf(1,2,3)

ㅁ 조건문의 활용

▷ if , if-else

    ⊙ JAVA의 if문과 동일

    if-else문 블록의 가장 마지막  값을 결과로 전달 (표현식 가능)

 

▷ when

ㅁ 반복문의 활용

▷ while

for

for와 Collection