2017-08-17 51 views
1

我從Kotlin的一個循環繼續,但我從工作室得到警告,標籤不表示循環。有人能告訴我這個語法有什麼問題嗎?該標籤並不代表循環for for each

下面是代碼段

newRooms.forEach [email protected] { wallRoom: WallRoom -> 

      val index = rooms.indexOf(wallRoom) 

      if(index!=-1) 
      { 
       val room = rooms[index] //get the corresponding room. 
       //check if the last session is same in the room. 
       if(wallRoom.topics.last().fetchSessions().last()==room.topics.last().fetchSessions().last()) 
       { 
        [email protected] 
       } 

回答

1

這裏的標記lambda表達式是字面的函數,而不是一個循環。

您不能breakcontinue此處的lambda表達式,因爲它獨立於for循環。您可以使用return從函數返回。

[email protected] 

注意,下面的代碼段的行爲一樣,另外一個,他們都將打印123

arrayOf(1, 2, 3).forEach [email protected] { 
    print(it) 
    [email protected] 
} 

[email protected] for (i in arrayOf(1, 2, 3)) { 
    print(i) 
    [email protected] 
} 
+0

爲什麼不能只打印1,它不應該退出,因爲返回@標籤? – AVEbrahimi

+0

@Avebrahimi它僅從lambda返回,但不會破壞for循環。 – BakaWaii