*참고저서 <오준석의 안드로이드 생존코딩>
1. 컬렉션(Collection)
자바에서와 마찬가지로 컬렉션은 유용한 자료구조들을 제공한다.
1)리스트 (List)
배열처럼 자료형을 순서대로 가지고 있는 자료구조로, 추가, 삭제, 교체가 더욱 간편하다.
val foods:List<String> = listof("라면","갈비","밥")
// val foods = listof("라면","갈비","밥")도 가능
val drinks = mutableListOf("콜라","물","마운틴듀")
drinks.add("우유") // 추가
drinks.removeAt(0) // 삭제
drinks[1] = "녹차" // 교체
listOf를 사용하여 작성하고, 자료형을 생략할 수 있다. 추가,삭제,교체가 가능한 리스트를 만들 경우
mutableListOf를 사용한다.
2)맵 (Map)
키와 값으로 이루어진 키 중복불가의 자료구조이며, 파이썬의 딕셔너리를 생각하면 된다.
: 대신 to 를 사용한다는 것만 제외한다면, 사용방법은 거의 같다.
val map = mapOf("a" to 1, "b" to 2)
val map2 = mutableMapOf("a" to 1, "b" to 2)
map2["a"] = 3 //교체
map2["c"] = 4 //추가
3)세트 (Set)
파이썬의 세트처럼, 중복을 허용하지 않는 자료구조이다. 맵에서 키만 모아놓은 것과 같다고 할 수 있다.
val set = setOf("a" , "b")
val set2 = mutableSetOf("a", "b")
set2.add("c") //추가
set2.remove("c") //삭제
println(set2.contains("b")) // true
2. 람다식 (lambda)
람다식은 같은 함수를 더욱 간결하게 표현할 수 있는 문법이다.
fun add(x:Int, y:Int): Int {
return x+y
}
fun add(x: Int, y: Int) = x + y
var add = {x: Int, y: Int -> x+y}
pirntln(add(2,5)) // 7
가장 위에 일반적인 형태의 함수가 있고, 아래는 람다를 이용한 함수들이다.
SAM변환은 하나의 추상메서드를 가진 인터페이스를 오버라이드할 때 이를 더 간결하게 표현하는 방법이다.
button.setOnClickListener(object: View.OnClickListener) {
override fun onClick(v: View?) {
//클릭 시 처리
}
}
다음과 같은 코드를
button.setOnClickListener {
it.visibility = View.Gone //클릭 시 처리
}
이렇게 간결하게 쓸 수 있다. it이라는 키워드는 위쪽 코드의 v인수를 자동으로 반환한다.
'대딩 기록(~22.01) > 안드로이드 공부노트' 카테고리의 다른 글
안드로이드앱 배포 파일 APK vs AAB(Andriod app bundle) (0) | 2022.01.23 |
---|---|
안드로이드 액티비티 생명주기 (0) | 2021.08.20 |
코틀린 기본 구문 (인터페이스, null 가능성) (0) | 2021.08.17 |
코틀린 기본 구문 (제어문, 클래스) (0) | 2021.08.16 |
코틀린 기본 구문 (변수/상수 , 함수, 자료형) (0) | 2021.08.15 |