목록Kotlin (3)
끄적끄적
탑레벨 함수 사용할 함수들이 하이레벨이거나, 일반적이거나, 넓게 사용될 때 싱글톤 함수들이 상태에 연관되어 있을 때
JVM에서는 제네릭을 사용할 때 Java의 타입 이레이저때문에 컴파일 타임에 타입 정보가 사라진다. 코틀린은 구체화된 타입 파라미터(Reified Type Parameter)를 통해서 이러한 문제를 해결할 수 있다. abstract class Person(val name: String) class Man(name: String) : Human(name) class Woman(name: String) : Human(name) 위와 같은 클래스들이 있다고 가정을 했을 때, 아래와 같은 리스트를 만들 수 있다. val people: List = listOf(Man("Homer Simpson"), Woman("Marge Simpson"), Man("Bart Simpson"), Woman("Lisa Simpson..
run - 또 다른 스코프를 정의할 수 있다. 블록 안에서의 마지막 객체를 반환한다. fun test() { run { Toast.makeText(applicationContext, "Toast Message", Toast.LENGTH_SHORT) }.show() } with vs T.run with(view) { visibility = View.VISIBLE } view.run { visibility = View.VISIBLE } - with은 일반적인 함수이고, T.run은 확장 함수이다. - 'view?.run { }'으로 하면 코드 수행 전에 null 체크가 가능하다. run vs let someString?.run { println("${this} not null") } someString?.l..