코딩/코드리뷰

for, foreach, foreachIndexed 빠져 나오기

코딩하는후운 2021. 8. 4. 09:45
반응형
  • for문

for(index in 0..size){

    if(index<=2){

    } else {

        break;

    }

}

 

for문은 break로 잘 빠져 나온다.

 

  • foreach

list.foreach {

    if(index<=2){

    } else {

        return@foreach;

    }

}

foreach는 return시켜도 계속 돈다.(continue같은 느낌)

 

코틀린 공식 홈페이지 보면 

return 을 했을때, continue처럼 동작하는거라고 설명되어있다.

https://kotlinlang.org/docs/reference/returns.html 

 

https://kotlinlang.org/docs/reference/returns.html

 

kotlinlang.org

 

run @loop {

    if(index<=2){

    } else {

        return@loop;

    }

}

이런식으로 하면 잘 빠져 나온다.

 

forEachIndexed를 사용하면 index를 따로 변수로 두지 않고 사용 가능하다.

 

 

만약,

run @loop {

    items.foreachIndexed { i, data ->

        if(data.id == id) {

            deletedIndex = i

            return@loop

        }

    }

}

로 빠져나간다면,

val deletedIndex = items.indexOfFirst { data -> data.id == id }

로 줄일 수 있다.

 

 

참조 : 

https://soulduse.tistory.com/71

반응형