let fun T.let(block: (T) -> R): R let함수를 사용하면 객체의 상태를 변경할 수 있다. 그리고 마지막에 작성된 값이 리턴된다. -> 즉, 블럭의 마지막 return 값에 따라 let의 return값이 달라진다. 또한, let블럭 안에는 non-null만 올 수 있어 non-null체크 시에 유용하게 쓸 수 있다. let은 보통 non-null일 경우 값을 변경하고자 하거나 무언가를 반환하고자 할 때 사용한다. val person = Person("", 0) val resultIt = person.let { it.name = "James" it.age = 56 it // (T)->R 부분에서의 R에 해당하는 반환값. } val nameStr = person?.let { it.na..