What are Optional?
อย่างที่บอกว่า Optional คือประเภทของตัวแปรที่สามารถเก็บค่าที่ไม่มีค่าได้ อย่างเช่น เราอาจจะสร้างตัวแปรขึ้นมาสักตัวเพื่อรับค่าบางอย่าง แต่กลับไม่ได้รับค่าตามที่เราเขียนไว้ ตรงนี้แหละ เราสามารถนำ Optional เข้ามาจัดการได้ เพื่อบอกกับโปรแกรมเราว่า ตัวแปรนี้อาจจะมีค่าหรือไม่มีค่าก็ได้
Declaring Optional
การประกาศตัวแปรแบบ Optional ก็ทำได้ง่ายๆ เพียงเติมเครื่องหมายคำถาม ?
ตามหลัง Type
ต่อมาเราจะไปดูวิธีการนำตัวแปรจาก Optional ไปใช้งานกัน โดยการถอดเอาตัวแปรข้างใน Optional ไปใช้เราจะเรียกวิธีการนี้ว่า Unwrap
Optional Binding
Optional binding จะเป็นวิธีการที่ปลอดภัย โดยเราจะนำ if let
หรือ guard let
เข้ามาช่วยเช็คค่าก่อน
if let
วิธีการนี้ก็เป็นการใช้ if else
ปกติที่เราเห็นทั่วๆ ไป
จากนั้นเราก็นำ starPath
ไปใช้ต่อได้เลย
guard let
guard let
ก็ใช้งานคล้ายๆ กับ if let จะต่างตรงที่ ถ้าไม่มีค่า จะเข้าไปทำข้างใน
Optional Chaining
เราสามารถ Optional chaining เข้ามาทำงานบางอย่าง อย่างเช่นในตัวอย่าง ก็คือ เช็คนามสกุล โดยที่เราไม่ต้องเข้าไปเขียนใน if เราสามารถเรียก methods ต่อได้เลย
Nil Coalescing Operator
เราสามารถกำหนดค่าให้กับตัวแปรนั้นได้ กรณีที่ตัวแปรนั้นไม่มีค่า ก็จะใช้ตัวแปรที่เรากำหนด ก็คือ เรากำหนดค่า default ให้กับตัวแปรนั้นนั่นแหละ สามารถทำได้โดยใช้เครื่องหมาย ??
Unconditional Unwrappingin
วิธีการนี้คือไม่สนใจอะไรทั้งนั้น บังคับแกะ Optional อย่างเดียวเพื่อให้ได้ค่าข้างใน หรือเรียกอีกอย่าง Force unwrap ถ้าแกะออกมามีค่าก็ดีไป ถ้าไม่มีก็ 💥
สามารถทำได้โดยใช้ !
ต่อท้าย