日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Swift 可選類型、可選綁定和可選鏈

來(lái)源: 責(zé)編: 時(shí)間:2024-01-16 10:17:14 252觀看
導(dǎo)讀本文我們將介紹 Swift 中的可選類型、可選綁定和可選鏈。如果你尚未安裝 Xcode 和配置 Swift 開(kāi)發(fā)環(huán)境。我們啟動(dòng) Xcode,然后選擇 "File" > "New" > "Playground"。創(chuàng)建一個(gè)新的 Playground 并命名為 "Optionals"。可

rTh28資訊網(wǎng)——每日最新資訊28at.com

本文我們將介紹 Swift 中的可選類型、可選綁定和可選鏈。如果你尚未安裝 Xcode 和配置 Swift 開(kāi)發(fā)環(huán)境rTh28資訊網(wǎng)——每日最新資訊28at.com

我們啟動(dòng) Xcode,然后選擇 "File" > "New" > "Playground"。創(chuàng)建一個(gè)新的 Playground 并命名為 "Optionals"。rTh28資訊網(wǎng)——每日最新資訊28at.com

可選類型

在 Swift 中,可選類型(Optional Types)用于處理可能包含值,也可能不包含值的情況。這對(duì)于處理變量可能為 nil 的情況非常有用。rTh28資訊網(wǎng)——每日最新資訊28at.com

在 Swift 中,可以使用 ? 符號(hào)來(lái)聲明可選類型。而在 TypeScript 中,沒(méi)有對(duì)應(yīng)的可選類型語(yǔ)法。但可以通過(guò) TypeScript 中的聯(lián)合類型和 undefined 來(lái)模擬可選類型。rTh28資訊網(wǎng)——每日最新資訊28at.com

Swift Code

var userAge: Int? = 30var userName: String? = "Semlinker"

TypeScript Code

let userAge: number | undefined = 30;let userName: string | undefined = "Semlinker";

可選綁定

在 Swift 中,可選綁定是一種安全的方式來(lái)檢查可選類型是否包含值,并將其提取出來(lái)。而在 TypeScript 中,可以使用條件語(yǔ)句來(lái)檢查變量是否為 undefined。rTh28資訊網(wǎng)——每日最新資訊28at.com

可選綁定的語(yǔ)法形式是使用 if let 或 guard let 語(yǔ)句,其中 let 后面跟著一個(gè)新的常量或變量的名稱,用于存儲(chǔ)可選類型中的值。rTh28資訊網(wǎng)——每日最新資訊28at.com

Swift Code

var userAge: Int? = 30if let age = userAge {    print("User's age is /(age)")} else {    print("User's age is unknown")}// Output: User's age is 30

在以上例子中,if let 語(yǔ)句檢查 userAge 是否包含值,如果包含,它將值賦給一個(gè)新的常量 age,之后就可以在 if 語(yǔ)句的作用域內(nèi)使用這個(gè)常量。rTh28資訊網(wǎng)——每日最新資訊28at.com

另一種使用可選綁定的方式是使用 guard let 語(yǔ)句,通常在函數(shù)內(nèi)部使用。guard let 語(yǔ)句要求條件為 true 時(shí)繼續(xù)執(zhí)行代碼,否則執(zhí)行 else 分支。rTh28資訊網(wǎng)——每日最新資訊28at.com

Swift Code

func printAge() {    var userAge: Int?    guard let age = userAge else {        print("User's age is unknown")        return    }    print("User's age is /(age)")}printAge()// Output: User's age is unknown

在以上示例中,如果 userAge 包含值,它將被賦給常量 age,否則將執(zhí)行 else 分支。rTh28資訊網(wǎng)——每日最新資訊28at.com

TypeScript Code

let userAge: number | undefined = 30;if (userAge !== undefined) {    console.log(`User's age is ${userAge}`);} else {    console.log("User's age is unknown");}// Output: "User's age is 30"

隱式展開(kāi)可空類型

在 Swift 中,如果確定可選類型一定包含值,可以使用 ! 符號(hào)進(jìn)行強(qiáng)制解包。rTh28資訊網(wǎng)——每日最新資訊28at.com

Swift Code

var userAge: Int? = 30let unwrappedAge = userAge!print("The unwrapped age is /(unwrappedAge)")// Output: The unwrapped age is 30

需要注意的是,如果變量的值為 nil,強(qiáng)制展開(kāi)將導(dǎo)致運(yùn)行時(shí)出現(xiàn)異常。rTh28資訊網(wǎng)——每日最新資訊28at.com

rTh28資訊網(wǎng)——每日最新資訊28at.com

Nil 合并運(yùn)算符

Swift 中的 nil 合并運(yùn)算符 ?? 提供了一種簡(jiǎn)潔的方式,如果可選類型為 nil,則提供默認(rèn)值。在 TypeScript 中,通常稱為 Nullish Coalescing Operator,也是使用 ?? 符號(hào)。rTh28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)運(yùn)算符與 Swift 中的 nil 合并運(yùn)算符類似,用于提供一個(gè)默認(rèn)值,只有在變量為 null 或 undefined 時(shí)才使用默認(rèn)值。rTh28資訊網(wǎng)——每日最新資訊28at.com

Swift Code

var userAge: Int?let ageToUse = userAge ?? 0print("Age to use is /(ageToUse)")// Output: Age to use is 0

TypeScript Code

let userAge: number | undefined;const ageToUse: number = userAge ?? 0;console.log(`Age to use is ${ageToUse}`);// Output: "Age to use is 0"

可選鏈

在 Swift 中,可選鏈允許你在調(diào)用屬性、方法或下標(biāo)腳本時(shí)處理可能為 nil 的可選類型,而無(wú)需進(jìn)行繁瑣的可選綁定。這種機(jī)制使得代碼更加簡(jiǎn)潔和可讀。比如,在 Swift 中,我們可以對(duì)數(shù)組使用可選鏈,以避免數(shù)組為 nil 的情況。rTh28資訊網(wǎng)——每日最新資訊28at.com

Swift Code

let names: [String]? = ["Alice", "Bob", "Semlinker"]let firstCharacter = names?.first?.firstprint(firstCharacter ?? "No names")// Output: A

在以上代碼中,names?.first?.first 將首先檢查 names 是否為 nil,然后檢查數(shù)組的第一個(gè)元素是否為 nil,最后獲取第一個(gè)元素的第一個(gè)字符。rTh28資訊網(wǎng)——每日最新資訊28at.com

Swift Code

let names: [String]? = []let firstCharacter = names?.first?.firstprint(firstCharacter ?? "No names")// Output: No names

TypeScript Code

const names: string[] | undefined = ["Alice", "Bob", "Semlinker"];const firstCharacter: string | undefined = names?.[0]?.[0];console.log(firstCharacter ?? "No names");// Output: "A"

本文我們介紹了 Swift 中的可選類型、可選綁定和可選鏈等相關(guān)的內(nèi)容。通過(guò)與 TypeScript 語(yǔ)法的對(duì)比,希望能幫助您更好地理解 Swift 的相關(guān)特性。rTh28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-62363-0.htmlSwift 可選類型、可選綁定和可選鏈

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 三分鐘帶你搞懂 Future 玩法

下一篇: 15 個(gè)非 JavaScript 的高級(jí) Web 開(kāi)發(fā)技巧

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 武乡县| 泽库县| 嘉善县| 南漳县| 七台河市| 广昌县| 洪泽县| 寻乌县| 青海省| 阿荣旗| 涟水县| 富裕县| 柳河县| 永安市| 綦江县| 常宁市| 西畴县| 高青县| 景宁| 泗洪县| 博野县| 四会市| 上栗县| 嵊泗县| 读书| 云阳县| 南投市| 临高县| 余江县| 泉州市| 灌云县| 家居| 栖霞市| 临沭县| 小金县| 梁平县| 新竹市| 威信县| 乌兰浩特市| 通城县| 虎林市|