Swift - 可选类型

本文涉及的产品
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
简介: Swift - 可选类型

Swift 可选类型 - Optionals


1、可选类型

2、强制解析

3、自动解析

4、可选绑定

1.可选类型- ?


加入我们创建一个变量,但是它有可能为空,这时候Swift提供一个符号‘?’来表示这是一个可能为空的变量:

var thisStr:String? = ""
//看到这里的if,没错,if或者for循环后面的内容不加(),加了也没错,但是并非所有的if或者for循环都可以加,在使用中尽量都不加
if thisStr != nil {
    print(thisStr)
}else{
    print("字符串为 nil")
}


2.强制解析


强制解析可选值,虽然是可选变量,但是我已经知道了这个值一定不会为nil,有值,所以请使用这个值,使用时在后面加‘!’

var thisStr:String?
thisStr = "Hello,World!"
if thisStr != nil {
   print(thisStr!)
}else{
   print("thisStr 值为 nil")
}


3.自动解析


在声明时用‘!’替代‘?’,不用提前知道是否为nil

var thisStr:String!
thisStr = "Hello,World!"
if thisStr != nil {
   print(thisStr)
}else{
   print("thisStr 值为 nil")
}


4.可选绑定


一开始没理解什么意思,后来才知道,原来是声明的变量是否为nil,若为nil就走else,非nil则赋值给声明的常量/变量:

var thisStr:String?
thisStr = "Hello, World!"
//此处let变量若需要改变可用var,后面的参数可以是一个函数
if let thatStr = thisStr {
   print("你的字符串值为 - \(thatStr)")
}else{
   print("你的字符串没有值")
}


目录
相关文章
|
3月前
|
安全 Swift
【Swift开发专栏】Swift中的可选类型与解包
【4月更文挑战第30天】Swift的可选类型(Optional)用于表示变量可能无值,如用户未填写表单或空服务器数据。可选类型用问号(?)标记,状态可为包含值或nil。解包包括强制解包(!,可能触发运行时错误)、可选绑定(在if/while中安全解包)和隐式解包(声明时带!,使用时不需显式解包)。高级用法包括可选链式调用、空合并操作符(??)和可选类型比较。理解并恰当使用这些概念能提升代码的健壮性和安全性。
32 1
|
3月前
|
安全 Swift
Swift 语言:什么是可选类型(Optional)?如何处理可选类型的安全解包?
Swift的可选类型是处理值可能缺失的类,用?表示。它们能表示有值或无值状态。安全解包用`if let`或`guard let`避免崩溃,而强制解包`!`则风险较高,若值为`nil`会触发运行时错误。
29 0
|
3月前
|
存储 安全 Swift
Swift中的可选类型
Swift中的可选类型
35 1
|
3月前
|
安全 Swift
Swift中的可选类型
Swift中的可选类型
39 1
|
Swift C++
Swift-进阶 10:可选类型Optional & Equatable+Comparable协议
Swift-进阶 10:可选类型Optional & Equatable+Comparable协议
314 0
Swift-进阶 10:可选类型Optional & Equatable+Comparable协议
《从零开始学Swift》学习笔记(Day 27)——可选类型
<span style="font-family:宋体;font-size: 14pt; mso-ascii-font-family: Arial; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: Ari
1172 0
|
3月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
241 2
|
29天前
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
30 3