Value and Reference Types in Swift
ประเภทของ Instance (of Custom Type) ใน Swift แบ่งออกเป็น 2 ประเภทคือ Value Type หมายถึง instance นั้นจะจัดการ data ของตัวเอง ไม่มีใครมาเปลี่ยนแปลง data ของตัวเองได้ ซึ่งใน Swift ข้อมูลที่เป็น Value Type ก็เช่น struct , enum และ tuple Reference Type จะหมายถึงในทางกลับกันคือ data ที่อยู่ใน instance จะทำการแชร์กับตัวแปรอื่นๆ ที่ถูก reference ไปด้วยซึ่งถ้าสร้าง Custom Type ด้วย class จะเป็น Reference Type ใน Blog นี้เราจะมาว่ากันถึงข้อดีของทั้งสองแบบ และการเลือกว่าจะใช้อันไหนดี What's the Difference ? สิ่งที่แตกต่างกันอย่างชัดเจนของ Value type นั่นคือการ copy ซึ่งจะเห็นผลในเรื่องของ ผลกระทบของการกำหนดค่า, การกำหนดค่าเริ่มต้น และการส่งผ่าน arguments มาลองดูตัวอย่างการสร้าง instance ที่เป็น Value type กัน ในทางกลับกัน Reference Type จะเป็นการสร้าง instance แบบแชร์ข้อมูลกัน โดยหลังจากที่มีการกำหนดค่าเกิดขึ้น instance ทั้งสองตัวจะอ้างอิงไปหาข้อมูลตัวเดียวกัน และสามารถเปลี่ยนค่าของกันและกันได้ เช่น ถ้าเราเปลี่ยนแปลงในตัวแปรตัวที่สอง ตัวแรกจะมีผลกระทบด้วย ...