swift 系统学习 04 可选值 解包 解包的几种方式
来源:互联网 发布:matlab svd 算法 编辑:程序博客网 时间:2024/06/06 00:41
//: Playground - noun: a place where people can playimport UIKit/* * 本节主要内容: * 1.可选型的基本使用 * 2.可选型的解包 */// 例如:let possibleNumber = "123"// 给定字符串, 转成整型(Int结构体提供方法)// convertedNumber是整型可选型(类型)let convertedNumber = Int(possibleNumber)let failToConvert = Int("hello")/* * 如何声明可选型? * 1.明确: 是什么什么可选型? (可选值 可以为nil) */// 显示声明整型可选型变量var errorCode: Int? = 404errorCode = nilvar errorCodeNew: Int = 404// nil只能赋值给可选型// errorCodeNew = nil 编译错误var errorMessage: String? = "Not Found"print(errorCode)print(errorMessage)// 拼接新的字符串print("Error message is \(errorMessage)")// 可选型解包Unwrap: 获取可选型非nil的值/* * 解包方式一: 强制解包 * 1.语法: 在对应的可选型后面加上叹号 * 2.风险: 如果可选型是nil, 强制解包编译错误 * 3.规避风险: 判断是否为nil, 如果不是就强制解包 */print("Error message is \(errorMessage!)")// print("Error code is \(errorCode!)")if errorCode != nil { print("Error code is \(errorCode!)")} else { print("Error code is nil")}/* * 解包方式二: 可选型绑定Optional Binding(if let解包) * 1.语法一: if let <constantName> = someOptional { 语句 } * 2.语法二: if var <variableName> = someOptional { 语句 } */// newErrorCode就是errorCode可选型的非空的值, 是Int类型if let newErrorCode = errorCode { print("Error code is \(newErrorCode)")} else { print("Error code is nil")}// 改进方式(推荐); 等号左边的errorCode是局部常量, 作用域仅限于第一个大括号内if let errorCode = errorCode { print("Error code is \(errorCode)")} else { print("Error code is nil")}// 举例: 内置方法的例子var greetings = "hello"greetings.range(of: "ll")greetings.range(of: "aa")// 对多个可选型解包的简化形式if let errorCode = errorCode, let errorMessage = errorMessage { // 获取两个可选型的非空值 print("error code is \(errorCode) and message is \(errorMessage))")}// 简化形式和if条件结合if let errorCode = errorCode, let errorMessage = errorMessage, errorCode == 404, errorMessage == "Not Found" { print("error code is 404 and message is Not Found")}
0 0
- swift 系统学习 04 可选值 解包 解包的几种方式
- swift 可选类型的解包
- Swift-可选类型(Optional)以及解包
- swift 学习计划(一) 解包、隐式解包的可选类型
- swift中的可选类型Optional?、解包!和隐式解包的可选类型的用法
- swift 系统学习 05 聚合(空合)解包 链式解包 可选型和元组的结合
- swift中解决闭包循环引用的几种方式
- Swift中解决闭包循环引用的几种方式
- Swift学习笔记——闭包的几种形式
- Swift 系统学习 27 闭包的使用
- swift 可选类型,强制拆包,隐性拆包
- Swift 系统学习 16 可选值 本质是枚举 (理解)
- Swift开发 解包(!的用法)
- 查看android apk的包名的几种方式
- python的几种常用安装包的方式
- swift闭包学习
- swift学习--闭包
- 总结运行SSIS包的几种方式
- SQLite AUTO INCREMENT/自动递增
- 公钥,私钥,数字签名,数字证书详解
- node express ejs 搭建个人网站(1)
- struts2基础——需要注意的几点
- C语言、C++:为什么要内存对齐?
- swift 系统学习 04 可选值 解包 解包的几种方式
- Cookie学习
- Ubuntu下无法检测到设备,adb显示insufficient permission for device
- Socket 客户端
- 量化投资
- 在命令窗口里转化视频格式
- SAP与外部WebService接口的链接
- RB-tree性质理解
- environments