一.在swift 中可选值用的非常的多,这个是swift的特点,
1.可选值的定义:
let x :Optional=10; (原始的可选值的定义)
print(x) //按住option 就可以查看x 的类型了
3.可选值的定义2:
let x : Int? = 2 (使用?是代表了可选值的类型)
let y :Int? = 10 (使用?定义个可选值的类型的判断)
print(x) //按住option 就可以查看是x 是optional 的类型了
print(x!+y!) //“!”强行解包-从一个可选值里面获取定义的非空值如果真的是ni了就会崩溃掉
总结下: ?是定义可选值的类型 !是强行解包的操作
二.可选值的逻辑操作的几种方法:
1.第一种方式使用if判断逻辑的处理:(if)
func demo(name:String?,age:Int?){
if name != nil && age !=nil{
print ("执行操作\(name)\(age)")
}else{
print("执行其他的操作了")
}
}
2.第二种处理方式:??(相当于三目运算符的使用)
func demo(x:Int?,y:Int?){
print((x ?? 0)+ (y??0)) (??相当于三目运算符 如果x不为nil就取前面x的值,否则就是取后面的0的值)
}
3.第三种方式: 使用(if let /var)去判断是否传入的值是否为nil ( let 是常量 var 是变量的操作)
func demo(0Name:String?,0Age:Int?){
if let name = OName, let age = Oage{
//if var 是可以在里面改变变量的值 ,可以尝试下看看
print("执行到现在就是说明传入有值,不是为nil")
}else{
print ("name 或者age 为nil")
}
}
4.第四种方式:guard (守护/守卫) 和if let/var 相反的操作了
func demo (){
var name:String?= "zhufeng"
let age:Int? = 20
guard let name = name ,let age = age else{
print("执行进来了说明name 或者age为nil")
return
}
//执行到这里的时候说明就正确 name 和 age 都不为nil
print("\(name)\(age)")
}