สำหรับพวกเราที่เริ่มใช้งานภาษา Swift เป็นแล้ว ก็จะมีกรณีที่เรา
- อยากส่งตัวแปรทีละหลายๆ ตัว
- อยากกรุ๊ปรวมตัวแปรเป็นกลุ่มที่ใหญ่ขึ้น เช่น รถยนต์ ก็อาจจะมีเลขทะเบียน, สี, และรุ่น
ความต้องการในลักษณะนี้ ในภาษา Swift จะมีเครื่องมือที่เรียกว่า Struct ไว้ให้เราใช้งานได้
Struct
Struct เป็นวิธีการทำทำให้เรากำหนดชื่อกลุ่มของข้อมูล และค่าตัวแปรต่างๆ ที่อยากจะเก็บเอาไว้ใน Struct นี้ได้ ลองมองง่ายๆ เหมือนกับเราหากล่องใบหนึ่งมาเก็บของ และเขียนหน้ากล่องว่ากล่องนี้ชื่ออะไร และมีอะไรเก็บไว้ด้านในบ้าง
การประกาศใช้งาน Struct
รูปแบบการประกาศใช้งาน Struct ก็จะใช้แบบด้านล่างนี้ โดยเราสามารถ
- กำหนดชื่อตามหลัง keyword
struct
- จากนั้นก็สามารถประกาศว่า struct นี้จะเก็บอะไรบ้าง เหมือนการประกาศ property ทั่วไป
struct Token {
var name: String
var contractAddress: String
}
การใช้งาน Struct ที่เตรียมไว้
struct Token {
var name: String
var contractAddress: String
}
let ethereum = Token(name: "Ethereum", contractAddress: "0x")
let bitcoin = Token(name: "Bitcoin", contractAddress: "0x0")
การกำหนด function ใน Struct
นอกเหนือจากนั้น ยังสามารถสร้าง function ไว้ใน struct เพื่อใช้งานได้ด้วยนะ
struct Token {
var name: String
var contractAddress: String
func addAddress() {
}
}
ข้อสังเกตสำคัญ
- เราสามารถมองได้ว่า Struct เป็นการกำหนดกล่องเก็บข้อมูลที่สามารถใส่ข้อมูลลงไปได้มากมาย เหมือนกับที่เราเลือกกล่องใส่ของ และเขียนด้านหน้ากล่องว่า กล่องนี้จะแบ่งเก็บของประเภทไหนบ้าง
- เวลาส่งข้อมูล ก็ส่งทั้งกล่องไปมานั่นแหละ
- หากใครใช้ Class หรือ Interface เป็นแล้วรูปแบบของ Struct จะคล้ายกับ Class มาก
- การ copy ข้อมูลของ Struct จะเป็นการโคลนเป็นตัวใหม่เลย ต่างจาก Class instance ที่เป็นการอ้างอิง Reference แทน