你的位置:首页 > 操作系统

[操作系统]【Swift学习】Swift编程之旅(三)


  元组(tuples)

  tuples是将多个单一的值组合为一个复合的值。它可以包含任何类型的值,而不需要都是相同类型。

 

  一.元组的创建

1。

let http404error = (404,"NOT FOUND!")let (statusCode, statusMessage) = http404errorprint("The status code is \(statusCode),the status message is \(statusMessage)")

 

2.

let httpError = (statusCode:404,statusMessage:"Not Found!")

 

输出结果

 

  二.元组数据的访问

1.statusCode,statusMessage就像字典中的key一样,我们可以通过它们来访问元祖的元素。

2.还可以使用下标来访问

 

  三.元组元素的忽略

有时候并不是需要所有的元素,我们可以通过_下划线来忽略不需要的元素

let http404error = (404,"NOT FOUND!")let (statusCode, _) = http404errorprint("The status code is \(statusCode)")

作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个(Int, String)元组来来描述是否获取成功。和只能返回一个类型的值比较起来,一个包含两个不同类型值的元组可以让函数的返回信息更有用。

 

  可选(Optional)

使用可选optional来处理一些值缺失的情况。

There is a value, and it equals x有一个等于X的值
or或者

There isn’t a value at all没有值

 

注意:

  在C 和 Objective-C 语言中并没有可选这个概念。最接近的 Objective-C 特征是,一个方法要不返回一个对象要不返回nil,nil表示“缺少一个有效的对象”。然而,这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型并不起作用。对于这些类型,Objective-C 方法一般会返回一个特殊值(比如NSNotFound)来暗示值缺失,Swift 的可选可以让你暗示任意类型的值缺失。

如果一个类型可选那么就在类型后加?即表示可选如Int?

 

下面我们通过一个简单的例子来学习一下可选

let possibleNumber = "12345"let number = Int(possibleNumber)print(number)

 

输出结果

let possibleNumber = "Hello,how are you?"let number = Int(possibleNumber)print(number)

 

输出结果

你将一个毫无价值的可选变量设置为nil

 

if 语句以及强制解析

你可以使用if语句来判断一个可选是否包含值。如果可选有值,结果是true;如果没有值,结果是false。

当你确定可选包确实含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个感叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的强制解析(forced unwrapping):