Posts

Showing posts with the label nserror

Continuation Passing Style in Swift

Image
ก่อนอื่นเลย เราอยากบอกว่า Apple ไม่ชอบท่าดัก Exception เท่าไหร่ แม้จะมี try / catch / finally ให้ใช้ แต่ดูได้เลย ไม่มีใครเขียนเป็น Production Code กันเลย (ในประสบการณ์ที่ผมเห็นโค้ดมาน่ะนะ) โดยในการทำ Error Handling บน Objective-C นั้นท่าที่เราเจอประจำคือการใช้ NSError ส่วนใน Swift นั้นจะตัดการทำ Throw Exception ออกไปเลย (ยกเว้นการทำ assert() ยังคงมีให้ใช้อยู่) และการใช้ NSError ก็คล้ายกันกับใน Objective-C นั่นแหละ แบบนี้ คราวนี้ใน Swift นั้นมีอีกทางเลือกหนึ่งที่ดูดีกว่า (หรือปล่าว ?) นั่นคือการใช้ Tuples เข้ามาช่วยให้เราส่งค่าหลายๆ ค่าออกมาจาก Function พร้อมๆ กัน แบบนี้ ลองชั่งใจกันเองครับ ว่าท่าไหนสวยกว่า... แต่เคยมีการ Discuss กันใน Facebook ของบรรดาคนในวงการมาตั้งคำถาม (ซึ่งผมหาไม่เจอแล้ว) มีอาจารย์ท่านนึงตอบได้น่าสนใจมากว่า (ผมก็พยายามนึกเอาล่ะนะ ไม่เป๊ะหรอก) การส่ง Error กลับไปด้วยการทำ Pass by reference นั้นถูกเขียนด้วยความเข้าใจที่ว่า "ฟังก์ชั่นควรส่งค่าอะไรกลับ" ซึ่งในที่นี้ชื่อฟังก์ชั่นบอกเราว่าจะต้องได้ Data กลับมา ดังนั้นเราจะมอง E...