관리 메뉴

hyeals study

[코틀린] 로컬 함수 본문

코틀린

[코틀린] 로컬 함수

hyeals 2020. 2. 7. 11:55

* 로컬(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"을 참고함.

Comments