Swift Struct 基本介紹與運用
Swift 的 `struct` 是一種非常重要的數據類型,與 `class` 類似,但有一些關鍵的區別。這篇文章將介紹 Swift 的 `struct`,並提供 2025 年最新的語法及最佳實踐。
Swift Struct 的基本結構
在 Swift 中,`struct` 可以用來封裝數據和行為。以下是一個簡單的 `struct` 的例子:
“`swift
struct TestStruct {
let product: String
init(name: String) {
self.product = name
}
}
“`
這段程式碼定義了一個名為 `TestStruct` 的結構,並透過初始化方法設置 `product` 屬性的值。
使用 Struct 的方法
使用 `struct` 也非常簡單。以下是如何創建和使用 `TestStruct` 的示例:
“`swift
let testStruct = TestStruct(name: “小海螺”)
print(testStruct.product) // 輸出:小海螺
“`
這樣就可以在控制台輸出 `product` 的值。
在 Struct 中添加方法
`struct` 內部不僅可以包含屬性,還可以包含方法。以下是添加方法的範例:
“`swift
struct TestStruct {
let product: String
let money: Int
init(name: String, price: Int) {
self.product = name
self.money = price
}
func showPrice() {
print(self.money)
}
}
“`
你可以這樣呼叫 `showPrice` 方法:
“`swift
let testStruct = TestStruct(name: “小海螺”, price: 150)
testStruct.showPrice() // 輸出:150
“`
自動初始化與 Enum 的應用
Swift 中的 `struct` 也可以自動初始化缺失的屬性。以下是使用 `enum` 的例子來豐富結構:
“`swift
enum TestEnum {
case productA
case productB
case productC
case productD
}
struct TestStruct {
let product: TestEnum
let money: Int
let date: String
}
“`
當你需要創建 `TestStruct` 的實例時,可以這麼做:
“`swift
let testStruct = TestStruct(product: .productA, money: 150, date: “2025-06-01”)
print(testStruct.product) // 輸出:productA
print(testStruct.money) // 輸出:150
print(testStruct.date) // 輸出:2025-06-01
“`
結論
Swift 的 `struct` 提供了一種強大而靈活的方法來組織和管理數據。與 `class` 相比,`struct` 更加輕量,並且在一些情境下更為安全。希望這篇文章能幫助你更好地理解和使用 Swift 的 `struct`。
Q&A(常見問題解答)
Q1: Swift 中 struct 和 class 有何不同?
A1: `struct` 是值類型,而 `class` 是引用類型。這意味著當你將 `struct` 的實例賦值給另一個變量時,會創建一個副本;而 `class` 則是對同一實例的引用。
Q2: Swift struct 可以包含哪些內容?
A2: Swift 的 `struct` 可以包含屬性、方法、初始化器、以及遵循協議等。
Q3: 什麼情況下應該使用 struct 而不是 class?
A3: 當你需要一個輕量級的數據結構,並且不需要繼承功能時,使用 `struct` 是更好的選擇。
—