Swift3.0的学习基础语法:(可选值Optional)

一.在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)")

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容