2015-10-01 22 views
12

Korumayı bir for döngüsünde kullanmanın doğru yolu nedir?Swift 2: for döngüsü koru?

Aşağıdakiler için tamamı için bir koşul koyabilirsiniz:

for (index,user) in myUsersArray.enumerate() { 

    guard user.id != nil else { 
     print("no userId") 
     //neither break/return will keep running the for loop 
    } 

    if user.id == myUser.id { 

     //do stuff 

    } 
} 
+0

Baskı kısmı gerekli mi? Bu, 'için' için bir kullanım olabilir. –

+0

nope, sadece "bilgi" için geliştirirken bazı eski dev-user-accs hala etrafında olabilir – longbow

+0

Sözdizimi 'guard let ...' ve diğer blok içinde aradığınız kelime 'devam' olduğunu. Ama evet, nerede daha iyi olur. – Fogmeister

cevap

17

bazı çıkarabilseniz yapmak için birkaç yolu vardır.

: Böyle bir şey yazmak edilecektir durumda

for (index, user) in myUsersArray.enumerate() { 
    guard check() else { continue } 
    guard flag else { break } 
} 

: It döngü için içinde bir şey kontrol etmek ve bir yinelemeyi atlar veya durdurabilir yineleme

for (index, user) in myUsersArray.enumerate() where check() {} 
for (index, user) in myUsersArray.enumerate() where flag == true {} 

her biri için adı verilecek

for (index, user) in myUsersArray.enumerate() { 
    guard let userId = user.id, userId == myUser.id else { continue } 

    // do stuff with userId 
} 
+0

"Gerçek nerede true" ifadesinin anlamı nedir? –

+0

İyi görünüyor, ancak karşı karşıya gelmeyi düşündüğünüz şeyi açıklayan bazı kelimeler ekleyebilirsiniz. –

+0

@appzYourLife, koşullu olarak koyabileceğiniz birkaç örnektir. – Arsen

2
for (index,user) in myUsersArray.enumerate() { 

    guard let userId = user.id else { 
     print("no userId") 
     continue; 
    } 

    if userId == myUser.id { 

     //do stuff 

    } 
} 
3

@Arsens yanıt doğrudur ama bu

anlamak daha kolay olduğunu düşünüyorum
let ints = [1,2,3,4,5] 

for (index,value) in ints.enumerate() { 

     guard value != 1 else { 
      print("Guarded \(value)") 
      continue 
     } 

     print("Processed \(value)") 
} 
İlgili konular