if letİsteğe bağlı bir sıfır olup olmadığını kontrol etmek için bir ifadeyi kısaltma olarak kullanabileceğimizi biliyoruz .
Ancak, bunu mantıksal AND işlecini kullanarak başka bir ifadeyle birleştirmek istiyorum &&.
Yani, örneğin, burada rootViewController'ımı tabBarController'a açmak ve isteğe bağlı olarak downcast etmek için isteğe bağlı zincirleme yapıyorum. Ancak if ifadeleri iç içe yerleştirmek yerine, onları birleştirmek istiyorum.
if let tabBarController = window!.rootViewController as? UITabBarController {
if tabBarController.viewControllers.count > 0 {
println("do stuff")
}
}
Kombine verme:
if let tabBarController = window!.rootViewController as? UITabBarController &&
tabBarController.viewControllers.count > 0 {
println("do stuff")
}
}
Yukarıdaki , çözümlenmemiş 'tabBarController' tanımlayıcısının kullanılması derleme hatası veriyor
Basitleştirme:
if let tabBarController = window!.rootViewController as? UITabBarController && true {
println("do stuff")
}
Bu, bir derleme hatası verir. Koşullu bağlamadaki Bağlı değer İsteğe Bağlı tipte olmalıdır . Çeşitli sözdizimsel varyasyonları denedikten sonra, her biri farklı bir derleyici hatası verir. Henüz emir ve parantezlerin kazanan kombinasyonunu bulamadım.
Öyleyse soru şu, mümkün mü ve eğer öyleyse doğru sözdizimi nedir?
Bir ile bunu yapmak istiyor unutmayın ifdeyimi değil bir switchdeyimi veya bir üçlü ?operatörü.