本章大致介绍一些swift特别的运算符
元组比较
import Foundation
/*
元组比较:
1.从左到右比较,一旦比出结果,即大于或小于,就是整体的比较结果
2.如果每个对应的元祖相等,则整体的结果就是相等
3.要比较7个或者更多的元素的元祖,必须实现比较运算符
*/
if (1,"zebra")<(2,"apple"){
print("the second win")
}
if(3,"apple")<(3,"bird"){
print("the second win")
}
if(4,"dog") == (4,"dog"){
print("sample")
}
三元条件运算符
与C语言中差不太多,直接上例子:
//三元条件运算符
let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
print(rowHeight)
关于 ? 与 ! //重点
swift语言中,如果不对变量进行初始化是不会自动给他一个初值的
此处报错的原因就是未初始化number就对他进行了使用
swift中有一种可选类型。(Optionals)
?
在定义变量时添加一个问号。以为此变量为可选类型,如果后面,给该变量赋值x。那么他就是x,如果没有赋值,他就是nil。
var optionalInt : Int?
print(optionalInt)
// 此时结果是nil
var optionalInt : Int?
optionalInt = 1
print(optionalInt)
//此时输出是Optional(1)
但是现在会出现警告,就是虽然现在有值,(不管是不是nil都认为有值)。但是她现在是可选类型,应给他确定类型。
!
此时 !就是用来强制解析:
var optionalInt : Int?
optionalInt = 1
print(optionalInt!)
//此时输出是1
此时optionalInt 是Int 类型。
所以有时候我们可以直接这么写:
var optionalInt : Int!
optionalInt = 1
print(optionalInt)
//此时输出是1
注:使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。
也就是说如果没有第二句赋值,此程序会崩掉。
所以使用!时要注意这点