我可以在IF
中使用let obj = something的多个条件if let u = custom["u"] as? String || let url = custom["URL"] as? String
{
// Do something here
}
答案 0 :(得分:4)
您可以添加多个条件,但仅限于使用AND条件。
如果您使用OR
,则不知道您的哪个值已正确设置,因此无法正确访问变量。
通过AND
测试,您确定两个变量都已正确创建,因此您可以确切地知道它们的类型。
您必须使用逗号分隔符分隔测试:
if let u = custom["u"],
let url = custom["URL"] {
// Do something here
}
此外,您可以使用if let
关键字在where
阻止后直接添加一些条件:
if let u = custom["u"] where u == "testValue",
let url = custom["URL"] {
// Do something here
}
答案 1 :(得分:1)
我假设您的收藏类型为Dictionary
。
如果您真的想使用OR
:
if(custom.keys.contains("u") || custom.keys.contains["URL"]) { }
但正如其他人写的那样,这并没有多大意义,因为如果你需要这些键的值,你仍然需要编写两个单独的if语句。
if let u = custom["u"] {
print("Value for u: \(u!)");
}
if let url = custom["URL"] {
print("Value for URL: \(url!)");
}
答案 2 :(得分:-1)
1)OR没有意义 2)用于AND,而不是
if let u = custom["u"] as? String,
let url = custom["URL"] as? String {
// Do something here
}
答案 3 :(得分:-1)
我同意user3441734。你想做什么?
if let u = custom["u"] as? String {
if let url = custom["URL"] as?
// Do something here
}
}
我会这样做。内部块仅在上述条件为真时执行或:
if let u = custom["u"] as? String {
// Call same method
}
if let url = custom["URL"] as?
// Call same method
}
这样就会检查并执行这两个。