Struct เป็นประเภทของโครงสร้างข้อมูลที่เหมือนกัน Tuples Types ที่ทำหน้าที่เก็บข้อมูลที่ที่แตกต่างกัน ตัว Struct จะต่างจาก tuples คือ ใน struct นั้น เราจะต้องตั้งชื่อข้อมูลแต่ละส่วนให้ชัดเจนว่าค่านั้นหมายถึงอะไร
Basic
วิธีการสร้าง struct นั้นเราจะใช้ struct
เป็นคำนำหน้า โดยที่ภายใน {}
นั้นเราจะประกาศประเภทของข้อมูล แบบไหนก็ได้แล้วแต่เราเลย
หากต้องการกำหนดค่าให้แก่ตัวแปร
การเข้าถึงข้อมูลเราสามารถเข้าถึงข้อมูลแต่ละตัวได้โดยการอ้างอิงชื่อตัวแปรภายในเลย user1.email
เช่นเดียวกันกับการแก้ไขข้อมูลภายใน เราก็ใช้วิธีเดียวกัน (อย่าลืมเพิ่ม mut
หลัง let
)
Creating Instances from Other Instances
เรายังสามารถสร้างข้อมูลใหม่ โดยใช้ข้อมูลจาก struct
ตัวอื่นได้ และสามารถเลือกที่จะแก้ไขข้อมูลบางตัวได้
เพื่อให้เราเขียนโค๊ดได้สั้นลง เราอาจใช้วิธีระบุ ..user1
และเลือกเปลี่ยนเฉพาะบางตัว
Struct with Tuples
เราสามารถใช้งาน struct รวมกันกับ tuples ได้ด้วยเช่นกัน
หากต้องการอัพเดทข้อมูลสามารถทำได้ทั้งแบบ แก้ไขทั้งหมด และแก้ไขเฉพาะบางตัว
Method Syntax
เราสามารถเพิ่ม method เข้าไปใน struct ด้วยเลยก็ได้ โดยเราจะเพิ่ม impl
และเพิ่มการทำงาน method เข้าไป
การเรียกใช้งาน ก็เป็นการอ้างอิงถึงข้อมูล และ method rect1.area()
ที่ต้องการได้เลย
หากต้องการใช้ ใช้ค่าใช้ struct
นั้น เราจะใช้ผ่านตัวแปร &self
ในการเข้าถึงค่าในตัวของ struct
เอง คล้ายๆ กับการใช้ this ในภาษา java เลย
อีกอย่าง เราสามารถที่จะสร้างหลายๆ impl
ได้ด้วย