一、元组 Tuples
元组就是将多个不同的值集合成一个数据
特点:
a、可以有任意多个值
b、不同的值的可以是不同的类型
元组更用的被用于函数上,函数的返回值可以返回一组值
let registrationResult = (true,"慕课女神","女")
let connectionResult = (404,"Not Found")
//以registrationResult为例
//取出元组中各个部分的具体的数据
//方法一
let ( isRegisterSuccess , nickName , gender) = registrationResult
isRegisterSuccess
nickName
gender
//方法二
registrationResult.0
registrationResult.1
registrationResult.2
//方法三:在声明元组时就起一个别名
let registrationResult1 = (isRegisterSuccess:true,nickName:"慕课女神",gender:"女")
registrationResult1.isRegisterSuccess
registrationResult1.nickName
registrationResult1.gender
// 输出结果:
// true
// "慕课女神"
// "女"
//使用下划线(_)来忽略部分数值
let loginResult = (true,"慕课女神")
let ( isLoginSuccess , _ ) = loginResult
if isRegisterSuccess {
print("登录成功!")
}
//显示声明元组类型的变量
let loginResult1:(Bool , String) = (true,"慕课女神")
二、可选值 Optionals
或者是一个值,或者是没有值;没有值时为nil;
OC中的nil表示的是空指针,但是在Swift中的nil含义更为广泛,在Swift中对于基本的数据类型,如整型、浮点型、布尔型也可以赋予nil;
//对于Swift来说,一个没有经过初始化的值是不能够被直接使用的,而不是被指派一个默认值
//显式声明一个可选值
var imOptionalVariable : Int?
imOptionalVariable = 12
//可选值存在的意义是什么呢,比如说,填写用户年龄,因为用户的输入是任意的,可能不是单纯的输入数字,而是完全有可能会去输入一个字符串,此时用户的输入应该是无效的输入,对于这种情况,可选值就发挥用处啦
let userInput = "adc"
//Int()这个函数的返回值类型是可选值,因此如果不能转换为Int数据类型的时候,age就为nil
var age = Int(userInput)
//对于可选型来说就可以使用if语句将可选值的值和nil做比较,以此来判断这个可选值到底存在这个值还是不存在这个值
if age != nil
{
print("your age is \(age)")
// 在Swift中有一种方法可以把一个已知一定有值的可选型转换成相应的值的类型,就是在可选型的后面加一个!,这个!的意思就是作为开发者,明确的知道age作为一个可选型但此时它肯定是有值的,这样的使用一定是安全的
print("your age is \(age!)")
//强制类型转换不能针对一个可选值进行操作,
//print("your age is "+String(age))
//正确的写法
print("your age is "+String(age!))
}
//Optional Binding
if let userAge = Int(userInput){
print("your age is \(userAge)")
}
//在有些情况下,可选值是需要的,但是它一旦被创建,在使用的时候它就一定是有值的,则可以使用下面的声明方法
let str:String! = "test"