방명록
- [Kotlin] 함수 탈출하기2023년 10월 21일 17시 35분 23초에 업로드 된 글입니다.작성자: 핀수728x90반응형
지난 글에서 반복문을 탈출한 것 처럼
함수도 탈출할 수가 있다.
우린 그걸 return 이라고 부르지...
마찬가지로 함수에도 라벨을 지정할 수 있을까?
val human = Human("홍길동", "1995-01-01", Hobby("골프", "운동")) human.hobby?.let { hobby -> if (hobby.type == "운동") { println("${human.name}(은/는) ${hobby.name}(을/를) 즐겨한다.") } println("${human.name}의 취미는 ${hobby.name}이다.") } println("${human.name}(은/는) ${human.birth}에 태어났다.") // 홍길동(은/는) 골프(을/를) 즐겨한다. // 홍길동의 취미는 골프이다. // 홍길동(은/는) 1995-01-01에 태어났다.
이러한 코드가 있다고 할 때, 결과는 위의 주석과 같을 것이다.
이때 결과의 첫번째와 세번째 문장만을 출력하고 싶다면 어떡해야할까?
return@let 을 사용하면 된다. return 을 입력하면 IDE에서 자동완성으로 뜬다.
하지만 let이 중첩된 경우이거나, 특정한 함수로 지정하고 싶을 때 라벨을 이용하면 좋을 것이다.val human = Human("홍길동", "1995-01-01", Hobby("골프", "운동")) human.hobby?.let label@ { hobby -> if (hobby.type == "운동") { println("${human.name}(은/는) ${hobby.name}(을/를) 즐겨한다.") return@label } println("${human.name}의 취미는 ${hobby.name}이다.") } println("${human.name}(은/는) ${human.birth}에 태어났다.") // 홍길동(은/는) 골프(을/를) 즐겨한다. // 홍길동(은/는) 1995-01-01에 태어났다.
여담이지만 let을 null check를 하기 위한 용도로 사용하는 것은 부적합하다고 한다.
코틀린..알면서도 모르는 것이 한가득한 녀석이다.
문법 공부도 게을리해선 안되겠다.공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다.
말씀해주시면 수정하겠습니다. 감사합니다.References
아래 글을 참고하여 작성 되었습니다.
Returns and jumps | Kotlin
kotlinlang.org
728x90반응형'pinslog > Log.daily()' 카테고리의 다른 글
[Android] 로컬 프로젝트를 implementation하기 (0) 2023.10.26 [Android] EditText 바깥 영역 터치 시 키보드를 숨기기 (0) 2023.10.25 튼튼한 집 짓기 (0) 2023.10.19 [Android] compileSdk 32 to 33 issue (0) 2023.10.18 [Kotlin] 반복문 탈출하기 (0) 2023.10.17 다음글이 없습니다.이전글이 없습니다.댓글