首页 > 代码库 > Swift--基本数据类型(二)

Swift--基本数据类型(二)

Booleans

Swift有基本的Boolean 类型,叫做Bool. 布尔值被称为逻辑运算,因为他们只能是true或者false.Swift提供2种Boolean值,一个true,另一个当然是false:

.    1  letorangesAreOrange= true

.    2  letturnipsAreDelicious= false

 

orangesAreOrangeturnipsAreDelicious已经在初始化的时候被定义为布尔值.对于Int和Double类型,你并不能在一开始初始化的时候就未他们设置为true或者fasle.类型推断有助于使Swift代码更简洁和可读性,当它初始化为其它值,其类型是已知的常量或变量。

当你使用if语句时,布尔类型显得尤为重要:

if turnipsAreDelicious{

    println("Mmm, tasty turnips!")

}?else{

println("Eww, turnips are horrible.")

 

}

 //prints "Eww, turnips are horrible."

Swift的类型安全可以防止非布尔值被用于替代布尔

 leti=1

 ifi{

println("Eww, turnips are horrible.")

 

}

// thisexample will not compile, and will report an error

然而接下来的例子就是可行的:

 

 

leti=1

ifi==1{

}

// thisexample will compile successfully

 

i==1比较的结果为BOOL类型,所以这第二个例子通过类型检查。

 

正如Swift类型安全的其他例子,这种方法避免了意外的错误,并确保代码的特定部分的意图始终是明确的。

 

Tuples

多元组可以是一个单一的值到多个值的复合值。元组中的值可以是任何类型的,并且不必须是相同的类型。

 

在这个例子中,(404,“Not Found”)是一个元组,它描述的HTTP状态代码。 HTTP状态代码是返回的Web服务器当你请求一个网页的特殊值。如果你请求的网页不存在则返回404状态代码未找到。

.    let http404Error= (404,"Not Found")

.     // http404Error is of type (Int, String),and equals (404, "Not Found")

在(404,“Not Found”)的元组组合在一起的诠释和一个字符串给HTTP状态代码两个独立的价值:一个Int和一个String可读的描述。它可以被描述为“类型的元组(Int,String)”。

你也可以创建更多的类型,(int,int,int)或者(Sting,Bool),你想怎么创造都可以.

对于多元组中的元素访问和一般的元素访问一样:

.    1  let(statusCode, statusMessage)= http404Error

.    2  println("The status code is\(statusCode)")

.    3  // prints "The status code is404"

.    4  println("The status message is\(statusMessage)")

.    5  // prints "The status message is NotFound"

 

如果你只需要一些元组的值,忽略元组的部分用下划线(_):

let (justTheStatusCode,_) = http404Error

println("The status code is\(justTheStatusCode)")

//prints "The status code is 404"

另外,在访问使用从零开始的索引号的元组的各个元素的值:

.    1  println("The status code is\(http404Error.0)")

.    2  // prints "The status code is404"

.    3  println("The status message is\(http404Error.1)")

.    4  // prints "The status message is NotFound"

元组定义时可以命名一个元组的各个元素:

let http200Status= (statusCode:200,description:"OK")

如果你的名字在一个元组中的元素,你可以使用元素名称来访问这些元素的值:

.    1  println("The status code is\(http200Status.statusCode)")

.    2  // prints "The status code is200"

.    3  println("The status message is\(http200Status.description)")

.    4  // prints "The status message isOK"