Swift支持的另一种类型是Bool,即布尔类型。布尔类型的取值要么为true要么为false,通常在比较表达式中使用它们来回答类似于下面的问题:12是否大于3,或55是否等于12?在软件开发中,从结束对象列表迭代到确定一组条件语句的执行路径,经常会用到这样的逻辑比较: 45> 100 > 50 $R0: Bool = true 46> 1.1 >= 0.3 $R1: Bool = true 47> 66.22 < 7 $R2: Bool = false 48> 44 <= 1 $R3: Bool = false 49> 5.4 == 9.3 $R4: Bool = false 50> 6 != 7 $R5: Bool = true 51> 这里使用了如下比较:大于、大于等于、小于、小于等于、等于、不等于。根据比较结果,返回布尔值true或false。这里比较了Int字面量和Double字面量,旨在说明这两种数值类型都是可以比较的,甚至可以对Double值和Int值进行比较。 结果 注意到这里没有使用关键字let或var将布尔表达式的结果赋给常量或变量;另外,这些条件表达式的结果各不相同,如第48行的结果所示: $R3: Bool = false 其中的$R3是什么呢?在Swift REPL中,这被称为临时变量,它存储了结果的值,这里为false。可像声明过的变量一样引用临时变量: 51> println($R3) false 52> 还可以给这些临时变量赋值,就像它们是声明过的变量一样。 如何比较字符串? 如果能够使用前述比较运算符来检查字符串是否相等,那就太好了。如果你使用过C或Objective-C,就知道检查两个字符串是否相等很麻烦。 在C语言中,需要像下面这样做: int result = strcmp("this string", "that string") 在Objective-C中,需要像下面这样做: NSComparisonResult result = [@"this string" compare:@ "that string"]; 在Swift中,编写比较字符串的代码易如反掌,这些代码也很容易理解: 52> "this string" == "that string" $R6: Bool = false 53> "b" > "a" $R7: Bool = true 54> "this string" == "this string" $R8: Bool = true 55> "that string" <= "a string" $R9: Bool = false 56> 结果说明了一切:Swift比较字符串的方式更自然、更具表达力。