Kotlin 파리미터를 자바에서 사용할 때

프로퍼티의 이름이 is로 시작하면 프로퍼티의 게터에는 get이 붙지 않고 원래 이름을 사용한다. 세터는 is를 set으로 바꾼 이름을 사용한다.

// Kotlin 코드
class Person(val isMarried: Boolean)

// 자바에서 사용시
Person person = new Person(false);
System.out.println(person.isMarried); // false
person.setMarried(true);
System.out.println(person.isMarried); // true

lateinit과 lazy

lateinit은 var과 함께 사용하고, lazy는 val와 함께 사용한다.

lateinit은 선언만 해두고, 초기화는 나중에 한다.

lazy는 선언과 동시에 초기화 코드가 있지만, 초기화를 하지는 않는다. 해당 변수가 호출되는 시점에 초기화를 진행한다.

왜 lateinit val은 안 될까?

왜 var lazy는 안 될까?

Scope function

run vs let