วิธีการนำ Equatable ไปใช้แบบเหล่ท่อใน Swift

Pattaravadee Luamsomboon
2 min readJan 29, 2021

สวัสดีชาวโลก และสวัสดีปีใหม่ปี 2021 🎉🎉🎉 (ก็ช้าไป๊ จะหมดเดือนแรกอยู่ละ) วันนี้จะมาประเดิม blog แรกประจำปี 2021 ด้วยเรื่อง Equatable ในภาษา swift จ้า ซึ่งที่คิดไว้น่าจะเป็น blog สั้นๆ แต่มีประโยชน์แน่นอน 100%

สิ่งที่จะพูดถึงจะมีดังนี้

  • Equatable คืออะไร
  • น้อมนำ Equatable ไปใช้

เอาล่ะ มาเริ่มกันที่หัวข้อแรกกันก่อนเลย Equatable คืออะไร

ใน document ของ apple กล่าวว่า

A type that can be compared for value equality.

แปลตรงๆ เลยนะ ก็คือ type ที่เราสามารถเอาไปเปรียบเทียบค่าได้…แค่นี้เลย…แค่นี้จริงๆ 😂 😂 😂 คำนิยามที่สั้นกริบ แต่…มันไม่ได้ง่ายขนาดนั้น เพราะเจ้า Equatable เนี่ย ตัวมันเองเป็น protocol ซึ่งการที่จะใช้ Equatable เราก็จะต้อง conform มาก่อน ดังนั้นเราจึงใช้ Equatable ได้ทั้งกับ class, struct หรือแม้แต่ enum ดังนั้นอย่ารอช้าเราจะไปที่หัวข้อต่อไปกันเล้ยยยยย

น้อมนำ Equatable ไปใช้

อย่างที่ได้เกริ่นไปในหัวข้อก่อนหน้านี้ว่าเราสามารถใช้ Equatable ได้ทั้งกับ class, struct หรือแม้แต่ enum เพราะฉะนั้นส่วนนี้จะขอเลือกตัวอย่างการใช้งานกับ struct และ enum มาให้ดู เพราะ stuct กับ class จะเหมือนกันอยู่แล้ว ส่วน enum จะมีท่าพิเศษเพิ่มมาหน่อย

การใช้งาน Equatable กับ struct

ผลลัพธ์ที่ได้
false
true

หมายเหตุ: เราไม่จำเป็นต้องเอาทุก property ใน struct ไปเปรียบเทียบนะ แล้วแต่ค่าที่เราต้องการจะเปรียบเทียบเลย

การใช้งาน Equatable กับ enum

ผลลัพธ์ที่ได้
true
false
false
true

จากตัวอย่างของ enum จะเป็นการเปรียบเทียบ associated values ใน enum เลย

ส่วนใหญ่เจ้าของ blog จะนำไปใช้ตอนที่ต้องทำ unit test เพื่อ compare ค่าระหว่าง object 2 ตัว หรือ state ของ enum ที่ return กลับมาว่าตรงกันมั้ย และนี่แหละคือประโยชน์ของตัว Equatableนั่นเอง 👏🏻👏🏻👏🏻

และสำหรับ blog นี้ก็มีเนื้อหาเพียงเท่านี้ หวังว่า blog นี้จะเป็นประโยชน์กับคนที่ได้เข้ามาอ่านนะ แล้วแจกันใหม่ใน blog หน้า 😬 😬 😬

--

--