AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

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

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

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

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

可選類型

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

在 Swift 中,可以使用 ? 符號來聲明可選類型。而在 TypeScript 中,沒有對應(yīng)的可選類型語法。但可以通過 TypeScript 中的聯(lián)合類型和 undefined 來模擬可選類型。Krz28資訊網(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 中,可選綁定是一種安全的方式來檢查可選類型是否包含值,并將其提取出來。而在 TypeScript 中,可以使用條件語句來檢查變量是否為 undefined。Krz28資訊網(wǎng)——每日最新資訊28at.com

可選綁定的語法形式是使用 if let 或 guard let 語句,其中 let 后面跟著一個新的常量或變量的名稱,用于存儲可選類型中的值。Krz28資訊網(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 語句檢查 userAge 是否包含值,如果包含,它將值賦給一個新的常量 age,之后就可以在 if 語句的作用域內(nèi)使用這個常量。Krz28資訊網(wǎng)——每日最新資訊28at.com

另一種使用可選綁定的方式是使用 guard let 語句,通常在函數(shù)內(nèi)部使用。guard let 語句要求條件為 true 時繼續(xù)執(zhí)行代碼,否則執(zhí)行 else 分支。Krz28資訊網(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 分支。Krz28資訊網(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"

隱式展開可空類型

在 Swift 中,如果確定可選類型一定包含值,可以使用 ! 符號進行強制解包。Krz28資訊網(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,強制展開將導(dǎo)致運行時出現(xiàn)異常。Krz28資訊網(wǎng)——每日最新資訊28at.com

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

Nil 合并運算符

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

這個運算符與 Swift 中的 nil 合并運算符類似,用于提供一個默認(rèn)值,只有在變量為 null 或 undefined 時才使用默認(rèn)值。Krz28資訊網(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)腳本時處理可能為 nil 的可選類型,而無需進行繁瑣的可選綁定。這種機制使得代碼更加簡潔和可讀。比如,在 Swift 中,我們可以對數(shù)組使用可選鏈,以避免數(shù)組為 nil 的情況。Krz28資訊網(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ù)組的第一個元素是否為 nil,最后獲取第一個元素的第一個字符。Krz28資訊網(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)容。通過與 TypeScript 語法的對比,希望能幫助您更好地理解 Swift 的相關(guān)特性。Krz28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

下一篇: 15 個非 JavaScript 的高級 Web 開發(fā)技巧

標(biāo)簽:
  • 熱門焦點
  • 印度登月最關(guān)鍵一步!月船三號今晚進入環(huán)月軌道

    8月5日消息,據(jù)印度官方消息,月船三號將于北京時間今晚21時30分左右開始近月制動進入環(huán)月軌道。這是該探測器能夠成功的最關(guān)鍵步驟之一,如果成功將開始圍
  • 十個簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強大而靈活的功能,用于修改或增強函數(shù)或類的行為。裝飾器本質(zhì)上是一個函數(shù),它接受另一個函數(shù)或類作為參數(shù),并返回一個新的函數(shù)或類。它們通常用
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設(shè)置樣式。可以為擁有指定屬性的 HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • Python異步IO編程的進程/線程通信實現(xiàn)

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現(xiàn)方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準(zhǔn)追劇女孩們的古偶劇集,2021年有優(yōu)酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 中國家電海外掘金正當(dāng)時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態(tài)LT(ID:LingTai_LT)2023年,出海市場戰(zhàn)況空前,中國創(chuàng)業(yè)者在海外紛紛摩拳擦掌,以期能夠把中國的商業(yè)模式、創(chuàng)業(yè)理念、戰(zhàn)略打法輸出海外,他們依
  • iQOO 11S評測:行業(yè)唯一的200W標(biāo)準(zhǔn)版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,該機不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
  • 3699元!iQOO Neo8 Pro頂配版今日首銷:1TB UFS 4.0同價位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標(biāo)準(zhǔn)版搭載高通驍龍8+,而Pro版更是首發(fā)搭載了聯(lián)發(fā)科天璣9200+旗艦
  • iQOO Neo8系列今日官宣:首發(fā)天璣9200+ 全球安卓最強芯!

    在昨日舉行的的聯(lián)發(fā)科新一代旗艦芯片天璣9200+的發(fā)布會上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品將全球首發(fā)搭載這款當(dāng)前性能最強大的移動平臺
Top