swift学习03-可选类型Optional

Swift.可选类型 optional


1.optional定义

optionalswift一个重要特性,它为那些在编译时不能确定是否有值的的变量做了一个包装

表示一个值可能缺失的类型

optional定义了两种值:有值 + nil

swiftnil也是一种类型,但跟真实的类型不匹配不能进行赋值

swift是强类型语言

optional的用处在于提供可为nil类型的变量


2.optional语法

var optionalValue:Optional<String> = nil

var optionaValue_:String? = nil


3.optional操作


?代表这是一个可选类型,是一个语法糖,原型为 public enum Optional 有两个值

case None = nil

case Some = 有值


可选值解包

var optionalValue:String? = "hello"

print(optionalValue) //optional(“hello”) 输出Optional包装后的string

需要用optionalValue的话则需要进行解包为

if let tempValue = optional{

//有值时进行操作

print(optionalValue) //hello

}


强制解包

! 也是一个枚举值 (枚举里面没看懂)

!的字面意思 隐式拆包就是对 optional进行强制解包,不需要管有没有值,但是如果没有设置值的话,===nil时,会报错。所以用隐式解包时候需要慎重,确定变量一定会有值在使用,xib拖的控件就可以这么使用,因为xib加载完后一定会有值。

var optionalValue_:String! = "hello"


空合运算符


空合运算符(a ?? b)将对可选类型 a 进行空判断,如果 a 包含一个值就进行解封,否则就返回一个认值 b。表达式 a 必须是 Optional 类型。认值 b 的类型必须要和 a 存储值的类型保持一致。

var a = "aaaaa"

var b:String? = "bbbb"


var c = b ?? a


/*

可选类型别的用法暂时不知道,以后学到更多的继续更新,因为现在只学到了函数,有不同意见或者指导我的请添加QQ 540811253

万分感谢!!!

*/

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...