分類
Swift

Swift 常用資料類型淺析

現在大部分的高級編程語言,都是從經典的 C 語言演變而來,你在這些編程語言的語法當中,或多或少地都能找到幾分 C 語言的影子,這也是為什麼很多人依舊推薦,從 C語言來入這個編程語言的門。

可是,C 語言的確足夠古老了,很多人都是衝著寫一個 APP 來玩的目標學習編程的,你去學 C語言……抱歉,可能一整本書學完了,也不能寫出一個美觀漂亮的 UI 界面。

不過,話說回來,要學習 Swift , 至少還是應該知道一些最最基本的知識——比如說,相對於 C 語言來說,Swift 是一門高級語言。

扯遠了,總之,這節課我們想要學習和了解的知識點是:編程語言中的數據類型。

由於大部分編程語言源於 C,又由於計算機架構本身如此,所以基本的數據類型永遠是 那麼幾個,比如說整形、比如說浮點型、比如說字符串等等,這節課,我們就依次來以 Swift 的角度解讀這些數據的類型。

整形 Int

幾乎在所有的編程語言當中都有 Int 整形數據這個概念,在 C語言中,int 大概會在內存當中佔用4個字節,也就是 4byte=32bit,而在 OSX 當中由於操作系統是64位,那麼整形的大小應該是64bit 也就是8個字節。

這一點我們同樣可以使用 sizeof()函數來查看。至於最大究竟可以存放多大的數,這裡不做討論,各種平台千奇百怪,總之,你知道這貨能放很大的數絕對夠用就是了,如果實在不夠,還有 UInt 類型, 這代表了非負整形,在整形變量的內存空間當中,總得保留幾個 bit 用來標記這個數字是正數還是負數,如果你想要更大的正整數,那麼 UInt 是個不錯的選擇(就是把保留的 bit 也用來標記數字,這樣可以標記更多。)C語言當中我們經常會遇到比如整形溢出那個實驗……在 Swift 當中這種情況不會發生,因為編譯器就會檢查出來。

整形,顧名思義它是用來存放整數的,任何小數點後邊的數都會被抹掉,在 Swift 當中,甚至編譯器不接受直接給整形賦值浮點數。

浮點型 Float

浮點型是專門用來存放小數的類型,Swift 只會為你保留六位有效數字,比如說一個是這樣的:

 

那麼一個浮點型變量最終會輸出成這樣:

這是科學計數法,其實也就是這樣:

你看,從左到右六位數往後的細節就都丟棄了呢!所以,要避免一個很大的數加上一個很小的數,這樣會造成細節的缺失。(這裡補充一句,如果是 C語言的話,那麼輸出的數字的細節是會存在的,只不過會變成各種奇奇怪怪的數字罷了。)

雙精度類型 Double

那麼說我就是任性我就是要輸出一個大數加上一個小數的數字,比如還是這個:

 

我就要原封不動的輸出!那麼雙精度可能是你的最愛:

雙精度類型也佔用了64bit 來儲存數值,不過它包括了小數,這也是 Swift 推斷類型時候對小數首選的類型(注意不是 Float)如果你給變量初始一個帶小數的數字比如 “0.0”那麼編譯器會自動推斷這貨是雙精度,這樣就可以保存你的數字了。

字符型 Character

說了那麼多關於數字的類型,我們再來說一說字符,大家都知道,我們輸入的每一個字母,每一個文字,都是一串代碼翻譯而來,而這個 Character 類型,就是將這些代碼儲存的類型,這個不常用,這裡我們點出它是為了說下一個類型。

字符串類型 String

字符串就是一串字符咯,它是字符型的值的一個集合比如說“Hello World”

在實際使用當中,String 使用的機會是很多的,比如說顯示個列表,名稱、還有簡介等等一切需要顯示文字的地方基本上都跑不掉 String

數組 Array

數組是一系列相同類型的有序組合,可以是一串 int ,也可以是一串 String ,全看你的喜好,數組從0開始計數,比如我要一個有八個成員的數組,那麼數組的大小就是8,但第一個值的序號是0,最後一個值的序號則是7,很多人一開始在這裡犯糊塗,要區分總數量和下標的序號之間的關係。

字典 Dictionary

字典和數組不同,它恰好彌補了數組的缺陷:字典允許不同類型的值組合。但它也不提供順序了。

所以,字典提供了“鍵”也就是 key 來作為值的標記。使用字典的時候,需要預先規定字典中鍵和值的類型,然後才可以使用。

基本上這些就是常用的數據類型了,剩下的我們會隨著課程的深入繼續講解。

本文由 落格博客 原創撰寫:落格博客 » Swift 常用資料類型淺析

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/1005.html

通過 落格博客

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *