hyeals study
[코틀린] 로컬 함수 본문
* 로컬(local) 함수를 사용하면 코드의 중복을 없앨 수 있으며 구조를 깔끔하게 유지할 수 있음.
이를 확인하기 위해 아래에 사용자를 데이터베이스에 저장하는 함수 예시가 있음
- 위의 코드에서 user.name.isEmpty() 부분과 user.address.isEmpty() 부분이 중복됨 (필드를 검사하는 부분)
위의 코드는 중복되는 부분이 그리 많지 않지만 중복이 많이 생기는 코드는 구조가 복잡해짐.
☞ 이러한 검증 코드를 로컬 함수로 분리하면 중복을 없앨 수 있으며 구조가 깔끔해짐
- validate(user, user.name, "Name"), validate(user, user.address, "Address") 부분에서 필드를 검증
- 결과적으로 검증 로직 중복이 사라지고, 필요에 따라 다른 User의 필드에 대한 검증도 쉽게 추가할 수 있음
추가적으로 불필요한 User 파라미터를 없앨 수 있음
* 로컬 함수는 자신이 속한 바깥 함수의 모든 파라미터&변수를 사용할 수 있음.
따라서
위의 코드처럼 validate 함수의 파라미터 user를 지워도 validate 함수 내부에서 user.id에 접근할 수 있음.
본 게시물은 "Kotlin IN ACTION"을 참고함.
'코틀린' 카테고리의 다른 글
[코틀린] 특이한 생성자와 프로퍼티를 갖는 클래스 (0) | 2020.02.19 |
---|---|
[코틀린] 클래스 계층 정의 (0) | 2020.02.18 |
[코틀린] 컬렉션 처리 (0) | 2020.02.06 |
[코틀린] 확장함수 & 확장 프로퍼티 (0) | 2020.02.05 |
[코틀린] 함수를 호출하기 쉽게 만들기 (0) | 2020.02.05 |
Comments