สอน Swift ตอนที่ 3.3 ตัวแปรแบบ OPTIONALS

สอน Swift ตอนที่ 3.3 ตัวแปรแบบ OPTIONALS

Optional คือแนวคิดใหม่ในภาษา Swift ตัวแปรแบบ Optional สามารถมีค่าหรือไม่มีค่าก็ได้ สำหรับ Optional ในภาษา Swift นั้นถูกนำมาใช้ได้กับทุกชนิดข้อมูล (Data Type)

Sep 02, 2016

แก้ไขล่าสุด มีผู้อ่าน 3,159  |  PROGRAMMING SWIFT

Optional คือแนวคิดใหม่ในภาษา Swift ตัวแปรแบบ Optional สามารถมีค่าหรือไม่มีค่าก็ได้ สำหรับ Optional ในภาษา Swift นั้นถูกนำมาใช้ได้กับทุกชนิดข้อมูล (Data Type) 

 

การประกาศตัวแปรแบบ Optional

วิธีประกาศตัวแปรให้เป็น Optional โดยการเพิ่ม ? ต่อจากชนิดของข้อมูล ถ้าเป็น Double เมื่อเป็น Optional ก็จะเป็น Double?

var optionalDouble : Double? = 17.7681

 


ถ้าเราประกาศ Optional โดยไม่ได้ตั้งค่าให้มัน มันจะถูกตั้งเป็น nil โดยอัตโนมัติ เราสามารถตั้งค่าตัวแปรที่เป็น Optional ให้ไม่มีค่าได้เช่นกันโดยกำหนดค่าเป็น nil ให้มัน

optionalDouble = nil

โดย nil หมายถึง ไม่มีค่า 

 

ในกรณีที่ Optional มีค่า เราสามารถติดต่อค่าได้โดยการใช้ Unwrapping Optional ด้วยการใส่เครื่องหมาย ! ไว้ด้านหลังชื่อตัวแปร

ถ้าทำการ Unwrapping Optional ในตอนที่ Optional ไม่มีค่า จะเกิด Runtime error 

var score : Int? = 10
if (score != nil) {
   print("Your score is \(score!)") // unwrapping optional
}

ผลลัพธ์หน้าจอ

Your score is 10

ถ้าเราไม่ใช้ Unwrapping Optional กับ Optional จะเกิดอะไรขึ้น

var score : Int? = 10
if (score != nil) {
   print("Your score is \(score)")
}

ผลลัพธ์หน้าจอ

Your score is Optional(10)

 

Optional Binding คือ การตรวจสอบ  Optional ว่ามีค่าหรือไม่ โดยหากมีให้กำหนดค่าให้กับตัวแปรหรือค่าคงที่ 

var score : Int? = 10
let unwrappedScore = score // optional binding

Optional Binding ยังสามารถนำไปใช้กับ if เพื่อตรวจสอบเงื่อนไขได้ โดยถ้าสามารถกำหนดค่าให้ตัวแปรหรือค่าคงที่ได้จะให้ค่า true และค่าไม่ได้จะให้ค่า false

var score : Int? = 10
if let unwrappedScore = score { // optional binding
   print("Your score is \(unwrappedScore)")
}

 

ถ้า Optional มีค่าเสมอ เราสามารถกำหนดเป็น Implicit Unwrapped Optional โดยการใส่เครื่องหมาย ! ตามหลังชนิดของตัวแปรดังตัวอย่าง

var score : Int! = 10
print("Your score is \(score)")

การใช้ Implicit Unwrapped Optional ใช้ในกรณีไหนได้บ้าง 

  • return value ของ function เพื่อให้แน่ใจว่าจะไม่ return nil กลับมา
  • argument ของ function เพื่อให้แน่ใจว่าไม่สามารถเรียก function ได้เมื่อส่งค่า nil เข้าไป

 

 

 


แบ่งปัน

ชอบ +1

บันทึก

ฝากคำถาม คำแนะนำ ได้ที่

Facebook : Share.OlanLab.Com
LINE ID : @olanlab
อีเมล์ : olan@olanlab.com

หลักสูตร

สอน Swift สร้างแอพพลิเคชั่นบน IOS, macOS, tvOs, watchOs

Swift ภาษาเขียนแอพพลิเคชั่นที่ใช้งานง่าย แต่ทรงพลังออกแบบสร้างสรรค์โดย Apple เพื่อใช้สร้างแอพพลิเคชั่นสำหรับ IOS, Mac, Apple TV และ Apple Watch
Share คลังความรู้ด้านเทคโนโลยี สารสนเทศ นวัตกรรมคอมพิวเตอร์ สอนเขียนโปรแกรม Php Java Html CSS Javascript C C++ Objective-C และอื่นๆ บนระบบปฏิบัติการ Window Linux Unix CentOS IOS Android
โดยผู้เขียนที่มีความเชี่ยวชาญเฉพาะ ให้บริการพื้นที่สำหรับนักเขียนที่ต้องการแบ่งปันความรู้ พร้อมให้คำปรึกษาแก่ผู้ที่สนใจ โดยไม่เสียค่าใช้จ่าย