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