안드로이드 스튜디오를 항상 Java로 구현해왔는데 Kotlin을 사용해보기로 했기에 공부를 시작해야한다. 생각하지도 못했던 것이다. 지금부터 boostcourse에 있는 강의들을 들을 예정으로 링크는 아래에 걸었다. 먼저 본격적인 스터디 전에 기존 언어들과 다른 점들을 정리해보았다.
변수타입
; 를 사용하지 않고, 변수 타입이 뒤로 붙음
val temp: Int = 10
var temp = 15
- val : 변할 수 없는 상수 → read-only, java: final, c/c++: const
- var : 일반적인 변수
함수생성
fun 함수명(변수명: 변수 타입): 리턴 타입 { return 값 }
fun sum(a: Int, b: Int): Int {
return a + b
}
null
물음표를 추가했을 때만 null을 명시 가능
var b: Int? = null
b = null // 정상 수행
→ nullable: ?
→ nullable 이면 오류 발생 : !!
Any
→ Java == Object
→ is == instanceof
// Kotlin
fun getStringLength(obj: Any): Int? {
if (obj !is String) return null
return obj.length
}
loop
val arrayList = ArrayList<String>()
for (s in arrayList) {
Log.d("TAG", "string : " + s)
}
when
if 문을 중첩하여 사용하지 않고 Any와 함께 구현 가능
fun main(args: Array<String>) {
cases("Hello") // String
cases(1) // Int
cases(System.currentTimeMillis()) // Long
cases(MyClass()) // Not a string
cases("hello") // Unknown
}
fun cases(obj: Any) {
when (obj) {
1 -> println("One")
"Hello" -> println("Greeting")
is Long -> println("Long")
!is String -> println("Not a string")
else -> println("Unknown")
}
}
ranges
// Kotlin
for (x in 1..5) {
println(x)
}
// ranges를 통해서 1~5까지의 값을 출력