iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0

之前在閱讀相關文章的時候,算是剛接觸Optional這個概念,對於可選的概念,覺得很模糊,不過後來知道值的「有或無」後,開始比較能理解其中的概念。我在下面會盡量以簡單的語言解釋Optional在Swift中是怎麼樣的概念:

Optional(可選項)基本上會用到兩個符號:“!”and”?”
Optional是一種曖昧的狀態:“可能有值”或“根本沒有值”

何謂空值?

nil 代表的意思就是“這個常數或變數中沒有值”,但不是為 0 的意思,因為 0 也是值。(Jeremy Xue,2017)

咀嚼上面的字眼,nil的概念就是描述 “沒有東西” or “nothing” 的狀態

為什麼需要Optional(可選項)?

在寫Swift的時候,我們都會需要先宣吿東西,比如:

但假若今天我們想要宣告一個東西是“沒有內容”(nil)的時候,這個時候Optional的概念就派上用場了。

實用Optional的時候,基本上圍繞在幾件事情上:
Wrapped(包裹)、Force-unwrap(強制解包)
宣告Optional

又可以稱為Wrapped(包裹)
你可以在下面發現”?”出現在宣告中,這是告訴Swift,我們現在將declare這個變數宣告為“沒有內容”或“可能有內容”的意思。總之就是曖昧啦…..

解包(Unwrap)

簡言之,就是你剛宣告的那個Optional,現在要把它解開,而解開方式一共有五種:

  1. 強制解包

  1. if檢查

  2. 可選綁定(Optional binding)

總而言之,依照可選綁定的邏輯,possibleNumber這個常數如果有賦值的話,在實際運作上就可以被打印出東西來

  1. ??(Nil Coalescing Operator)

  1. guard語句

guard語句的判斷,是基於布林值的,也就是我下面提及的部分,將possiblenumber文字轉換為數字。Int(possiblenumber)會變成True,也就是“有”東西

Int(possiblenumber)會變成False,也就是“沒有”東西

基本上大概介紹這五種對於可選項的解決辦法,大概可以說:
稍微對於「可選」這個概念有一些初步的認識。

tags: 鐵人賽

上一篇
# Day12--我們用協定說好要這樣做了,你一定得OK!
下一篇
# Day14--解決曖昧問題延伸出來的那些事
系列文
Swift30天:從語法到觀念,告訴你在踏入實作前最好弄清楚的那些事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
南國安迪
iT邦新手 3 級 ‧ 2021-09-28 09:41:56

還在曖昧就要解包,太母湯了 (不要檢舉我)

MJ iT邦新手 4 級 ‧ 2021-09-28 11:39:03 檢舉

所以我們永遠把女生當作變數再加上?
XDD

Rex iT邦新手 3 級 ‧ 2021-09-28 13:45:14 檢舉

我要留言

立即登入留言