在Swift中,如何使用正确的语法在if语句中链接多个条件,例如:
if (string1!=nil && string2!=nil) {}
或者:
if (string1.isEmpty && string2.isEmpty) {}
在Swift中,如何使用正确的语法在if语句中链接多个条件,例如:
if (string1!=nil && string2!=nil) {}
或者:
if (string1.isEmpty && string2.isEmpty) {}
两个条件之间无需使用()
:
let name1 = "Jim"
let name2 = "Jules"
if name1.isEmpty && name2.isEmpty {
println("Both strings where empty")
}
此外,检查字符串是否为nil并不等同于检查字符串是否为空。
要检查字符串是否为nil,首先它们必须是可选类型。
var name1: String? = "Jim"
var name2: String? = "Jules"
if name1 != nil && name2 != nil {
println("Strings are not nil")
}
同时还需要安全打开:
if let firstName = name1, secondName = name2 {
println("\(firstName) and \(secondName) are not nil")
}
if let firstName = name1, secondName = name2 where !firstName.isEmpty && !secondName.isEmpty {
println("\(firstName) and \(secondName) are not nil and not empty either")
}
在 Swift 中,检查 nil 和检查字符串内容是不同的。
NSString 类有一个 length 方法,它将返回字符串的长度。
Swift 中的粗略等效物是 count() 函数。(对于带有重音的字母等东西,其行为不同,但现在先忽略它)
如果您想要一个表达式,如果 String 可选项为 nil 或包含空字符串则返回 0,请使用以下代码:
var aString: String?
println(count(aString ?? ""))
aString = "woof"
println(count(aString ?? ""))
代码 count(stringOptional ?? "")
如果可选项为nil或包含空字符串,则返回0。
??
双引号被称为 "nil coalescing operator"。如果第一个部分为nil,它将用第二个部分替换表达式的第一个部分。它相当于:
string1 == nil ? "" : string1
你可以使用相同的结构与 isEmpty:
(string1 ?? "").isEmpty
因此,你的if语句最好写成:
if (string1 ?? "").isEmpty && (string2 ?? "").isEmpty
{
println("Both strings are empty")
}
var string1: String?
如果它们被声明为必需的字符串对象:
var string1: String
你不需要上面显示的可选语法,否则它将无法编译。
string1 != nil
,不是string!=nil
。 - vacawama