Kotlin
코틀린 FAQ_week5
지 슈
2023. 1. 9. 17:41
현재 영역에 있는 변수에 접근
람다를 함수 안에서 정의하면 함수의 매개변수와 람다 정의 앞에 정의된 로컬 변수까지 람다에서 모두 사용 가능하다.
파이널 변수를 포회한 경우 : 람다 코드를 변수값과 함께 저장
파이널이 아닌 변수를 포획한 경우: 변수를 특별한 래퍼로 감싸서 래퍼에 대한 참조를 람다 코드와 함께 저장한다.
wrapper?
wrapper는 기본형 값들을 객체로 취급한다.
핸들러
핸들러를 사용하는 이유는 비동기적(asynchronous)으로 어떤 일을 처리하기 위해서이다. 그래서 함수가 순차적으로 실행되지 않는다.
비동기 호출이란 요청에 대한 결과가 동시에 일어나지 않으 상태에서 요청을 한 번에 다 받고 응답을 나중에 하는 호출이다.
멤버 참조
멤버 참조 시 : : 를 사용한다.
메소드, 생성자, 프로퍼티의 이름 앞에 : : 를 붙여서 각각에 대한 참조를 만들 수 있다. 그런 참조를 람다 대신 함수에 넘길 수 있다.
<Person : : age>는
클래스가 Person, 멤버가 age, : : 로 클래스와 멤버를 구분하고,
{person: Person → person.age} 와 같은 역할을 함.
또 최상위에 선언된 다른 클래스의 멤버가 아닌 함수나 프로퍼티를 참조할 수도 있다.