ด้วย Swift 3 คุณสามารถใช้การผูกมัดตัวเลือกสลับคำสั่งหรือรูปแบบเพิ่มเติมเพื่อแก้ไขปัญหาของคุณ
1. การใช้if let
(การผูกหรือการผูกมัดเสริม)
Swift โปรแกรมภาษารัฐเกี่ยวกับการผูกมัดตัวเลือก:
สามารถทำการสืบค้นหลาย ๆ คำพร้อมกันได้และการโยงทั้งหมดล้มเหลวอย่างงดงามหากลิงก์ใด ๆ ในกลุ่มนั้นเป็นศูนย์
ดังนั้นในกรณีที่ง่ายที่สุดคุณสามารถใช้รูปแบบต่อไปนี้เพื่อใช้หลายแบบสอบถามในการดำเนินการผูกมัดตัวเลือกของคุณ:
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
if let latitude = latitude as? Double, let longitude = longitude as? Double {
print(latitude, longitude)
}
// prints: 2.0 10.0
2. การใช้ tuples และการโยงค่าในคำสั่ง switch
เป็นทางเลือกแทนการโยงแบบง่าย ๆ คำสั่ง switchสามารถเสนอโซลูชันแบบละเอียดเมื่อใช้กับสิ่งอันดับและการโยงค่า
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
switch (latitude, longitude) {
case let (Optional.some(latitude as Double), Optional.some(longitude as Double)):
print(latitude, longitude)
default:
break
}
// prints: 2.0 10.0
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
switch (latitude, longitude) {
case let (latitude as Double, longitude as Double):
print(latitude, longitude)
default:
break
}
// prints: 2.0 10.0
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
switch (latitude as? Double, longitude as? Double) {
case let (.some(latitude), .some(longitude)):
print(latitude, longitude)
default:
break
}
// prints: 2.0 10.0
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
switch (latitude as? Double, longitude as? Double) {
case let (latitude?, longitude?):
print(latitude, longitude)
default:
break
}
// prints: 2.0 10.0
3. การใช้สิ่งอันดับif case
(รูปแบบตัวเลือก)
if case
( รูปแบบตัวเลือก ) ให้วิธีที่สะดวกในการคลายค่าของตัวเลือกการแจงนับ คุณสามารถใช้มันร่วมกับ tuples เพื่อที่จะทำการผูกมัดตัวเลือกที่มีหลายคำสั่ง:
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
if case let (.some(latitude as Double), .some(longitude as Double)) = (latitude, longitude) {
print(latitude, longitude)
}
// prints: 2.0 10.0
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
if case let (latitude as Double, longitude as Double) = (latitude, longitude) {
print(latitude, longitude)
}
// prints: 2.0 10.0
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
if case let (.some(latitude), .some(longitude)) = (latitude as? Double, longitude as? Double) {
print(latitude, longitude)
}
// prints: 2.0 10.0
let dict = ["latitude": 2.0 as AnyObject?, "longitude": 10.0 as AnyObject?]
let latitude = dict["latitude"]
let longitude = dict["longitude"]
if case let (latitude?, longitude?) = (latitude as? Double, longitude as? Double) {
print(latitude, longitude)
}
// prints: 2.0 10.0