เรารู้ว่าเราสามารถใช้if letคำสั่งเป็นชวเลขเพื่อตรวจสอบศูนย์ที่เป็นทางเลือกจากนั้นแกะออก
&&แต่ผมต้องการที่จะรวมที่มีการแสดงออกอื่นโดยใช้ตรรกะและผู้ประกอบการ
ตัวอย่างเช่นที่นี่ฉันทำโซ่เสริมเพื่อแกะและเลือกดาวน์แคสต์ rootViewController เป็น tabBarController แต่แทนที่จะซ้อนคำสั่ง if ฉันต้องการรวมเข้าด้วยกัน
if let tabBarController = window!.rootViewController as? UITabBarController {
    if tabBarController.viewControllers.count > 0 {
        println("do stuff")
     }
 }
รวมการให้:
if let tabBarController = window!.rootViewController as? UITabBarController &&
    tabBarController.viewControllers.count > 0 {
        println("do stuff")
     }
}
ข้างต้นทำให้เกิดข้อผิดพลาดในการคอมไพล์การใช้ตัวระบุที่ไม่ได้รับการแก้ไข 'tabBarController'
ลดความซับซ้อน:
if let tabBarController = window!.rootViewController as? UITabBarController && true {
   println("do stuff")
}
นี้จะช่วยให้การรวบรวมข้อผิดพลาดคุ้มค่าที่ถูกผูกไว้ในเงื่อนไขผูกพันต้องเป็นชนิดที่เป็นตัวเลือก เมื่อพยายามใช้รูปแบบวากยสัมพันธ์ต่างๆแล้วแต่ละรูปแบบจะให้ข้อผิดพลาดของคอมไพเลอร์ที่แตกต่างกัน ฉันยังไม่พบชุดคำสั่งและวงเล็บที่ชนะ
ดังนั้นคำถามคือเป็นไปได้หรือไม่และถ้าเป็นเช่นนั้นไวยากรณ์ที่ถูกต้องคืออะไร?
โปรดทราบว่าผมต้องการที่จะทำเช่นนี้กับifคำสั่งไม่switchคำสั่งหรือ ternary ?ผู้ประกอบการ