코틀린(3)
-
[코틀린] var과 val의 차이
코틀린에서는 자바와 다르게 특정 타입을 명시하지 않고 변수를 선언합니다. String name = "홍길동";//자바 val name = "홍길동"//코틀린 그런데 위처럼 val이라고 선언한것도 있고 간혹가다 var이라고 표시한것도 있죠. 오늘은 이 val과 var의 차이를 공부해 보려 합니다. 변수를 선언하는 두 키워드 val - val은 value의 줄임말로 immutable reference며 val로 선언된 변수는 나중에 재할당 될 수 없습니다. 마치 자바의 final과 같은 기능입니다. var - var은 variable의 줄임말로 mutable reference며 var로 선언된 변수는 변경될 수 있습니다. final이 아닌(non-final)인 자바의 변수들이랑 같습니다. val은 위에서 말..
2021.09.19 -
[코틀린] 범위 지정 함수 let(), apply(), with(), run(), also()
코틀린에서 아주 자주 볼 수 있는 범위지정함수 5가지를 정리합니다. 범위 지정 함수는 코틀린에서 표준 라이브러리를 통해 제공하고 있습니다. let() apply() with() run() also() let() let()은 이 함수를 호출한 객체를 이어지는 함수 블록의 인자로 전달합니다. //1. 이 함수를 호출한 객체를 block의 인자로 전달하고 block의 결과를 반환 fun T.let(block: (T) -> R): R let은 불필요한 변수 선언을 방지할 수 있습니다. //let 사용 전 val file = File(path) if(!file.exists()){ throw FileNotFoundException(file.toString()) } val metadata = loadModuleMet..
2021.09.03 -
[코틀린] 함수 호출시, 인자에 함수 대입하기
자바8에서도 지원하는 람다 표현식! 코틀린에서는 더 직관적인 문법을 갖고있는데요. 그 중에서 함수를 호출할 때 인자로 함수를 넘기는 방법을 람다식으로 표현해보려 합니다. 예를들어, WordListAdapter라는 클래스에 클릭함수 onClickListener(item: Word)를 MainActivity에서 재정의하고, WordListAdapter를 생성할때 인자로 넘기고 싶습니다. ▶ WrdListAdapter.kt WordListAdapter클래스는 생성자에 context와 onClickListner함수를 인자로 넘겨받습니다. Class WordListAdapter( private val context: Context, val onClickListener: (Word)->Unit ) : Recycle..
2020.12.09