
- Swift 教程
- Swift - 首頁
- Swift - 概述
- Swift - 環境
- Swift - 基本語法
- Swift - 變數
- Swift - 常量
- Swift - 字面量
- Swift - 註釋
- Swift 運算子
- Swift - 運算子
- Swift - 算術運算子
- Swift - 比較運算子
- Swift - 邏輯運算子
- Swift - 賦值運算子
- Swift - 位運算子
- Swift - 其他運算子
- Swift 高階運算子
- Swift - 運算子過載
- Swift - 算術溢位運算子
- Swift - 恆等運算子
- Swift - 範圍運算子
- Swift 資料型別
- Swift - 資料型別
- Swift - 整數
- Swift - 浮點數
- Swift - Double
- Swift - 布林值
- Swift - 字串
- Swift - 字元
- Swift - 類型別名
- Swift - 可選型別
- Swift - 元組
- Swift - 斷言和前提條件
- Swift 控制流
- Swift - 決策
- Swift - if 語句
- Swift - if...else if...else 語句
- Swift - if-else 語句
- Swift - 巢狀 if 語句
- Swift - switch 語句
- Swift - 迴圈
- Swift - for in 迴圈
- Swift - while 迴圈
- Swift - repeat...while 迴圈
- Swift - continue 語句
- Swift - break 語句
- Swift - 穿透語句
- Swift 集合
- Swift - 陣列
- Swift - 集合
- Swift - 字典
- Swift 函式
- Swift - 函式
- Swift - 巢狀函式
- Swift - 函式過載
- Swift - 遞迴
- Swift - 高階函式
- Swift 閉包
- Swift - 閉包
- Swift - 轉義和非轉義閉包
- Swift - 自動閉包
- Swift 面向物件程式設計
- Swift - 列舉
- Swift - 結構體
- Swift - 類
- Swift - 屬性
- Swift - 方法
- Swift - 下標
- Swift - 繼承
- Swift - 重寫
- Swift - 初始化
- Swift - 析構
- Swift 高階特性
- Swift - ARC 概述
- Swift - 可選鏈
- Swift - 錯誤處理
- Swift - 併發
- Swift - 型別轉換
- Swift - 巢狀型別
- Swift - 擴充套件
- Swift - 協議
- Swift - 泛型
- Swift - 訪問控制
- Swift - 函式與方法
- Swift - SwiftyJSON
- Swift - 單例類
- Swift 隨機數
- Swift 不透明型別和裝箱型別
- Swift 有用資源
- Swift - 線上編譯
- Swift - 快速指南
- Swift - 有用資源
- Swift - 討論
Swift - 資料型別
在任何程式語言中開發程式時,使用變數來儲存資料是必要的。變數只不過是保留的記憶體位置來儲存資料。這意味著當我們建立一個變數時,我們在記憶體中保留了一定數量的空間。
隨後,當希望在變數中儲存資料時,我們可以輸入任何型別的資料,例如字串、字元、寬字元、整數、浮點數、布林值等。根據變數的資料型別,作業系統分配記憶體並決定可以在保留的記憶體中儲存什麼。
Swift 中的內建資料型別
Swift 為程式設計師提供了豐富的內建資料型別,也稱為原始資料型別。它們表示基本值,並由 Swift 語言直接支援。Swift 提供七種內建資料型別,它們是:
資料型別名稱 | 描述 |
---|---|
Int 或 Uint | 用於整數。更具體地說,您可以使用 Int32、Int64 定義 32 位或 64 位有符號整數,而使用 UInt32 或 UInt64 定義 32 位或 64 位無符號整數變數。例如,42 和 -23。 |
Float | 用於表示 32 位浮點數和小數位數較少的數字。例如,3.14159、0.1 和 -273.158。 |
Double | 用於表示 64 位浮點數,當浮點值必須非常大時使用。例如,3.14159、0.1 和 -273.158。 |
Bool | 表示布林值,其值為真或假。 |
String | 有序的字元集合。例如,“Hello, World!” |
Character | 單個字元字串文字。例如,“C” |
Optional | 表示可以儲存值或不儲存值的變數。 |
邊界值
下表顯示了資料型別、在記憶體中儲存值所需的記憶體量以及可以在此類變數中儲存的最大值和最小值。
型別 | 典型位寬 | 典型範圍 |
---|---|---|
Int8 | 1 位元組 | -127 到 127 |
UInt8 | 1 位元組 | 0 到 255 |
Int32 | 4 位元組 | -2147483648 到 2147483647 |
UInt32 | 4 位元組 | 0 到 4294967295 |
Int64 | 8 位元組 | -9223372036854775808 到 9223372036854775807 |
UInt64 | 8 位元組 | 0 到 18446744073709551615 |
Float | 4 位元組 | 1.2E-38 到 3.4E+38 (~6 位) |
Double | 8 位元組 | 2.3E-308 到 1.7E+308 (~15 位) |
Swift 中的使用者定義資料型別
使用者定義的資料型別允許我們根據需求建立自定義的資料型別。它們提供了更大的靈活性和抽象性。以下是 Swift 支援的一些使用者定義的資料型別:
型別名稱 | 描述 |
---|---|
結構體 (struct) | 它們是值型別;這意味著在程式中傳遞時可以複製它們。它們適合表示簡單的資料結構。 |
類 | 它們是引用型別;這意味著它們作為引用傳遞。它們適合複雜的資料模型和物件。 |
列舉 (Enum) | 用於定義一組相關的值。它們適合表示有限集。 |
協議 | 它們定義了方法和屬性的藍圖,這對於特定任務或功能塊很有用。 |
定義資料型別
定義資料型別是一個過程,在這個過程中,我們指定將在變數中儲存什麼型別的資料。眾所周知,Swift 支援兩種型別的資料——內建資料型別和使用者定義的資料型別。因此,我們將看到如何定義內建資料型別:
語法
以下是內建資料型別的語法:
var name : dataType = Value
示例
定義內建資料型別:
var index : Int = 10 var str : String = "Learn Swift!" var char : Character = "S" var num : Float = 23.45 var nums : Double = 32.233434 var value : Bool = true
現在我們將看到如何定義使用者定義的資料型別:
語法
以下是使用者定義資料型別的語法:
struct Student { var name: String var age: Int } var myData = Student(name: "Mona", age: 23)
示例
定義內建使用者定義資料型別:
// Structure struct Employee { var name: String var age: Int } // Structure data type var myData = Employee(name: "Seema", age: 23) // Class class Student { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } } // Class data type var myInfo = Student(name: "Alice", age: 25) // Enumeration enum Rectangle { case length, width, breadth } // Enum data type var side: Rectangle = .length
Swift 中的型別安全
Swift 是一種型別安全的語言。這意味著如果程式中的變數期望一個字串,則不能錯誤地傳入整數,因為 Swift 在編譯程式碼時執行型別檢查,如果發現任何型別不匹配,則會顯示錯誤訊息。
但是,這並不意味著必須指定每個變數或常量的型別。Swift 應用型別推斷,如果未顯式指定變數或常量的型別,則會自動確定其型別。
示例
Swift 程式演示型別安全。
var varA = 42 // Here compiler will show an error message because varA // variable can only store integer type value varA = "This is hello" print(varA)
輸出
main.swift:5:8: error: cannot assign value of type 'String' to type 'Int' varA = "This is hello"
Swift 中的型別推斷
型別推斷是 Swift 語言的一項特殊功能;它允許編譯器在編譯時自動推斷給定表示式的型別。這意味著不需要在宣告時顯式定義變數的型別,Swift 仍然會提供字串型別安全。
當宣告具有初始值的常量或變數時,它非常有用。
示例
Swift 程式演示型別推斷。
import Foundation // varA is inferred to be of type Int var varA = 42 print("Type of varA variable is:", type(of:varA)) // varB is inferred to be of type Double var varB = 3.14159 print("Type of varB variable is:", type(of:varB)) // varC is also inferred to be of type String var varC = "TutorialsPoint" print("Type of varC variable is:", type(of:varC))
輸出
Type of varA variable is: Int Type of varB variable is: Double Type of varC variable is: String