일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 동성로맛집
- 개발자
- 안드로이드개발
- 안드로이드
- 수성구맛집
- 인스타핫플
- 안드로이드앱
- 애드센스
- 파이썬
- 앱개발
- 안드로이드스튜디오
- 범물동카페
- 감성카페
- 동성로카페
- Android
- 어플개발
- androidstudio
- 수성구카페
- 코딩
- 대구카페
- 애드몹
- 대구핫플
- 대구맛집
- 동성로핫플
- 대구인스타핫플
- 의무경찰
- 지산동카페
- 안드로이드앱개발
- 범물동
- 코딩공부
- Today
- Total
Glacier's Daily Log
코틀린 스코프 함수 알아보기 (Kotlin Scope Function - let, run, with, apply, 그리고 also) 본문
코틀린 스코프 함수 알아보기 (Kotlin Scope Function - let, run, with, apply, 그리고 also)
h__glacier_ 2023. 7. 8. 16:24안드로이드 개발을 시작한지 3년이 다 되어간다.
쌩독학으로 시작해서, 유튜브 구글링 등으로 원하는 앱을 만들어보며 직접 부딪혔다.
그렇게 한두개씩 개인 앱 프로젝트를 만들다 보니, 어느새 내 플레이스토어 개발자 계정에는 40개 이상의 앱이 올라가 있었고
많은 외주작업을 맡을 수 있는 프리랜서 개발자로도 활동하고 있다.
Google Play의 Glacier Han 개발자 Android 앱
안녕하세요, 1인 안드로이드 어플 개발자 Glacier Han 입니다. 약 40개의 안드로이드 앱을 개발 하였으며, 다양한 플랫폼에서 운영중입니다. 앱개발 멘토링 / 앱 외주개발 등도 진행중에 있습니다.
play.google.com
처음에는 JAVA로 앱 개발을 배웠다. 약 2년동안 자바로 안드로이드를 하다가, 아무래도 추세는 코틀린으로 넘어간지 오래라,, 힘들지만 코틀린으로의 전환을 시작했다.
코틀린을 사용한지 약 반년이 다 되어가는 지금, 이제 자바 코드는 보기 싫을정도로 코틀린에 적응해버렸다.
오늘은, 코틀린에서 사랑하는 문법 중 하나인 스코프 함수에 대해서 한번 정리해보는 시간을 가져보려 한다.
Kotlin Scope 함수란?
특정 객체의 컨텍스트 안에서 특정 동작을 수행하기 위한 목적을 가진 함수
스코프 함수를 람다형식으로 생성하면 스코프를 생성하는데, 해당 스코프 안에서는 객체의 이름을 참조할 필요없이 객체에 바로 접근하여 모든 메소드나 멤버를 사용할 수 있게 된다.
Scope 함수를 사용하면 좋은 점?
- 코드 가독성 향상 -> 스코프 함수를 사용하면 객체관련 코드를 훨씬 간결하고 가독성이 좋게 작성할 수 있다. 스코프 내에서 모든 객체 관련 처리를 진행하므로 불필요한 객체명 반복을 막을 수 있음.
- Nullable 객체 처리 -> let 함수를 사용하여 널 객체를 안전하게 처리 가능. null이 아닌 경우에만 코드블록에 접근하여 실행함으로 NPE를 사전에 막을 수 있음
- 객체 초기화 -> apply 함수는 객체 초기화에 유용하게 사용할 수 있다. 객체 생성 후 다양한 속성을 설정하는 과정을 간결하게 표현 가능.
- 코드 범위 제한 -> 스코프 내에서 변수는 외부와 인터렉션 하지 않으며 코드를 안전하게 작성 가능.
Scope 함수의 종류 및 사용예
- let: 주로 Nullable 객체를 안전하게 처리하는데 사용.
- run: 반환하는 값이 스코프 내에서 처리된 결과값. 특정 객체의 속성을 출력하는 데 주로 사용. ?로 null-check 가능
- with: run과 거의 동일하나 파라미터 형태로 스코프를 연다.
- apply: 반환 결과가 객체 자신. 객체 생성 후 속성들을 설정하는 데 사용. 스코프 내 모든 명령이 수행 된 후 해당 객체 반환
- also: apply와 동일하게 생성된 객체를 반환. 객체의 속성을 수정하지 않을때 유용. it을 사용하여 속성에 접근할 수 있음
정리
- 객체 접근법
- this로 컨텍스트 객체에 접근 -> run, with, apply
- it으로 컨텍스트 객체에 접근 -> also, let
- 반환값
- apply, also는 참조한 객체 반환
- let, run, with는 람다식 결과 반환
'Coding > Android' 카테고리의 다른 글
'Flow' in Android (0) | 2024.01.24 |
---|---|
무심코 쓴 getApplicationContext()에 대해서 알아보자 (feat. Dialog에 applicationContext 쓰면 안되는 이유) (0) | 2023.07.11 |
심플한 무료 태블릿 메뉴판 개발기 : 더메뉴, 스마트메뉴판 (0) | 2023.03.27 |
안드로이드 스마트폰 (갤럭시) USB디버깅, 개발자모드 활성화 방법 (0) | 2023.01.23 |
(Android) JAVA ArrayList의 복사, 복제 - 복제한 ArrayList가 제대로 작동하지 않을 때, Firebase 무료 할당량 초과 (0) | 2022.10.04 |