• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > swift 可选型的使用详解

swift 可选型的使用详解

作者:追到梦的魔术师 字体:[增加 减小] 来源:互联网 时间:2017-05-28

追到梦的魔术师 通过本文主要向大家介绍了中转行swift代码 可选,taylor swift,swift,swift code是什么意思,taylor swift好听的歌等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

 一、基本用法

可选性是Swift提供的一个特殊类型,它为我们编写程序提供便利的条件

swift是强类型语言,当我们需要使用一个变量,既可以为String,也可以为nil时,这时候就需要我们使用可选型。

// 使用特殊值作为“无”可能产生歧义
//var errorCode = 404
//errorCode = 0
// 使用可选型
var errorCode:Int? = 404
print( errorCode )
errorCode = nil
print( errorCode )
var color: UIColor? = nil
// Int? 和 Int 不是一种类型
let imInt = 405
errorCode = imInt
//imInt = errorCode
// 必须显示地声明可选型的类型
//var imOptional = nil
var imOptional: String? = nil
</div>

二、可选型解包使用

var errorCode:String? = "404"
print( errorCode )
// 可选型不可以直接使用
//"The errorCode is" + errorCode
// 强制解包
"The errorCode is " + errorCode!
// 强制解包是危险的
errorCode = nil
//"The errorCode is" + errorCode!
// 判断不是nil
if errorCode != nil{
"The errorCode is " + errorCode!
}
else{
"No error"
}
// if let 解包
if let unwrappedErrorCode = errorCode{
"The errorCode is " + unwrappedErrorCode
}
else{
"No error"
}
// 可以使用相同的变量名
if let errorCode = errorCode{
"The errorCode is " + errorCode
}
else{
"No error"
}
// 使用if-let同时解包多个变量
var errorMessage:String? = "Not found"
if let errorCode = errorCode{
if let errorMessage = errorMessage{
"The errorCode is " + errorCode + "\nThe errorMessage is " + errorMessage
}
}
</div>

三、多层解包(**swift3.0有变化)

//多层解包(swift 2.0使用)
if let errorCode = errorCode , errorMessage = errorMessage{
"The errorCode is " + errorCode + "\nThe errorMessage is " + errorMessage
}
//以上多层解包方法在swift3.0中应写为
if let errorCode = errorCode , let errorMessage = errorMessage{
"The errorCode is " + errorCode + "\nThe errorMessage is " + errorMessage
}
// where(swift 2.0使用)
if let errorCode = errorCode , errorMessage = errorMessage where errorCode == "404"{
print("Page not found")
}
//在swift3.0中应写为 
// where
if let errorCode = errorCode , let errorMessage = errorMessage , errorCode == "404"{
print("Page not found")
}
</div>

四、Optional chaining的使用

可选型?这种写法叫做Optional chaining

这种方法可以进行尝试解包,使代码简洁

var errorMessage: String? = "Not Found"
if let errorMessage = errorMessage{
errorMessage.uppercased()
}
//使用 Optional chaining
errorMessage?.uppercased()
var uppercaseErrorMessage = errorMessage?.uppercased()
//uppercaseErrorMessage为可选型
if let errorMessage = errorMessage?.uppercased(){
errorMessage
}
// Optional chaining 也可以使用!
let uppercaseErrorMessage2 = errorMessage!.uppercased()
//此时 uppercaseErrorMessage2 为String类型。此时为强制解包,容易出现错误
</div>

五、Nil-Coalescing 的使用

// Nil-Coalescing
var errorMessage: String? = nil
let message: String
if let errorMessage = errorMessage{
message = errorMessage
}
else{
message = "No error"
}
// 使用三目运算符
let message2 = errorMessage == nil ? "No error" : errorMessage!
// 注意: 此时使用errorMessage需要强制解包.以保证message2是一个String,而非String?
// 三目运算符?:的实质就是一个if else
// 使用 ??
let message3 = errorMessage ?? "No error"
// 注意: 此时使用errorMessage不需要强制解包. 
// ??符号已经保证了访问到errorMessage时, errorMessage不是nil
// Swift将为我们自动解包, 保证message2永远是一个String, 而不是String?
//这种用法叫做 Nil-Coalescing
</div>

以上所述是小编给大家介绍的swift 可选型的使用详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Swift 可选(Optionals)类型
  • Swift 可选链
  • swift 可选型的使用详解
  • Swift中使用可选类型完美解决占位问题

相关文章

  • 2017-05-28Swift语言实现地图坐标弹跳动画
  • 2017-05-28详解Swift的switch...case语句中break关键字的用法
  • 2017-05-28解析Swift中的泛型支持与使用
  • 2017-05-28Swift的开发环境搭建以及基本语法详解
  • 2017-05-28Swift、Objective-C、Cocoa混合编程设置指南
  • 2017-05-28swift 可选型的使用详解
  • 2017-05-28Swift调用Objective-C编写的API实例
  • 2017-05-28在Swift中使用Objective-C编写类、继承Objective-C类
  • 2017-05-28Swift之UITabBarController 导航控制器的自定义
  • 2017-05-22Swift 常量

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Swift编程之枚举类型详解
    • Swift中使用正则表达式的一些方法
    • Swift 编程语言入门教程
    • Swift的开发环境搭建以及基本语法详解
    • Swift编程中用以管理内存的自动引用计数详解
    • 详解Swift面向对象编程中的方法(method)
    • 深入解析Swift语言中的协议
    • 详解Swift语言中的类与结构体
    • CentOS安装solr 4.10.3详细教程
    • List调用toString()方法后,去除两头的中括号实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有