没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:
```swift
var stringValue : String
//error: variable 'stringValue' used before being initialized
//let hashValue = stringValue.hashValue
// ^
let hashValue = stringValue.hashValue
```
上面了解到的是普通值,接下来`Optional`值要上场了。`Optional`其实是个`enum`,里面有`None`和`Some`两种类型。其实所谓的`nil`就是`Optional.None`, 非`nil`就是`Optional.Some`, 然后会通过`Some(T)`包装`(wrap)`原始值,这也是为什么在使用`Optional`的时候要拆包(从enum里取出来原始值)的原因, 也是PlayGround会把Optional值显示为类似`{Some "hello world"}`的原因,这里是enum Optional的定义:
```
enum Optional : LogicValue, Reflectable {
case None
case Some(T)
init()
init(_ some: T)
/// Allow use in a Boolean context.
func getLogicValue() -> Bool
/// Haskell's fmap, which was mis-named
func map(f: (T) -> U) -> U?
func getMirror() -> Mirror
}
```
声明为Optional只需要在类型后面紧跟一个?即可。如:
`var strValue : String? `
一旦声明为Optional的,如果不显式的赋值就会有个默认值nil。判断
点击阅读更多
资源评论
刘璐璐璐璐璐
- 粉丝: 36
- 资源: 326
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 点云数据处理与开发基础教程
- (源码)基于 JavaWeb 的超市收银系统.zip
- (源码)基于Vue和Cordova的移动端在线选座购票系统.zip
- (源码)基于C++的simpleDB数据库管理系统.zip
- (源码)基于Arduino的RTOSMMESGU实时操作系统项目.zip
- (源码)基于STM32和TensorFlow Lite框架的微语音识别系统.zip
- (源码)基于C#的支付系统集成SDK.zip
- (源码)基于Spring Cloud和Spring Boot的微服务架构管理系统.zip
- (源码)基于物联网的自动化开门控制系统 iotsaDoorOpener.zip
- (源码)基于ROS的Buddy Robot舞蹈控制系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功