스코프 함수 • 객체 생성 시 사용하는 함수 • 하나의 스코프를 만들어 그 안의 코드들을 실행한다. - 이 스코프 안에서는 객체를 이름없이 바로 접근할 수 있다. • 생성한 객체에 대해 어떠한 동작을 해야할 때 간결하게 사용할 수 있다. - 스코프 함수를 쓰지 않으면 간단한 동작을 할 때도 변수를 만들고, 변수의 이름을 반복해서 사용해야하는 번거로움이 있다. // 스코프 함수 사용하지 않았을 때 val alice = Person("Alice", 20, "Amsterdam") println(alice) alice.moveTo("London") alice.incrementAge() println(alice) // 스코프 함수 사용했을 때 Person("Alice", 20, "Amsterdam").let { ..
범위(Scope) • 변수를 사용할 수 있는 범위, 영역 • 변수, 함수, 클래스, 패키지 등의 범위가 있다. • 보통, 변수가 선언된 그 블록({ }로 둘러쌓인 범위)이 변수의 스코프이다. - 즉, 한 블록 안에서 선언된 변수는 그 안에서만 사용이 가능하다. • 스코프 내부에 또 스코프가 있다면, 상위 스코프, 하위 스코프로 나뉜다. - 하위 스코프에서는 상위 스코프 멤버를 사용 및 (재)할당 할 수 있지만 반대는 안 된다. // 변수 사용 가능 범위 fun func1() { val NUM1 = 1 } println(NUM1) // 오류 발생 : NUM1은 없는 변수 -> NUM1 변수의 사용 가능 범위는 func1 함수의 블럭({ }) 안. // 상위 스코프와 하위 스코프 var outsideNum ..