본문 바로가기
학습 log (이론)/kotlin

Kotlin기초 'label'

by abbear25 2019. 10. 21.

 

/*return@레이블 반환값 ... */
var lambdaVal = Exit@{ //이름없는 함수(람다식)의 리턴
    if (true) {
        return@Exit true //true일 때 반환값, lambdaVal 셋팅
    }
    false //false일 때 반환값, lambdaVal 셋팅 
}

/*break@레이블,continue@레이블*/
fun exitLoop() { // 제어문 빠져나갈 '레이블@' 지정,  'break@레이블'로 지정한 곳으로 빠져나감. goto와 유사
    Exit@ for(i in 0 .. 2){
        for (j in  0.. 10){
            if (j == 5) break@Exit //5가되면 println 실행 전에 Exit@로 빠져나가 for문 종료
            println("i->$i, j->$j")
        }
    }
}

class Foo{
        fun Int.This(){
            val funThis = this //함수 자체 선언
            val funExternal = this@Foo //this를 이용하여 외부 객체 할당
            test()
            funExternal.test()
        }
        fun test() {
        }
    }
    fun test(){
    }
}

 

return@레이블 반환값...

해당 레이블로 값을 가지고 복귀(이름없는 함수나 람다식에 사용)

 

break@레이블, continue@레이블 

break는 반복문을 종료하고 지정한 레이블로 나감

continue는 다음라인을 무시하고 지정한 레이블 이동

 

this@레이블

내/외부에 접근

반응형

'학습 log (이론) > kotlin' 카테고리의 다른 글

Kotlin기초 '객체'  (0) 2019.11.03
Kotlin기초 'Exception 처리'  (0) 2019.10.27
Kotlin기초 'Collection'  (0) 2019.10.24
Kotlin 기초 '제어문'  (0) 2019.10.20
'변수와 함수' Kotlin기초  (0) 2019.08.18