Swift - Tùy chọn

Swift 4 cũng giới thiệu Optionalsloại, xử lý trường hợp không có giá trị. Các tùy chọn cho biết "có một giá trị và nó bằng x" hoặc "không có một giá trị nào cả".

Tùy chọn là một loại riêng của nó, thực sự là một trong những enums siêu cấp mới của Swift 4. Nó có hai giá trị có thể,NoneSome(T), Ở đâu T là một giá trị liên quan của kiểu dữ liệu chính xác có sẵn trong Swift 4.

Đây là một khai báo Số nguyên tùy chọn -

var perhapsInt: Int?

Đây là một khai báo Chuỗi tùy chọn -

var perhapsStr: String?

Khai báo trên tương đương với việc khởi tạo nó thành nil có nghĩa là không có giá trị -

var perhapsStr: String? = nil

Hãy lấy ví dụ sau để hiểu cách hoạt động của các tùy chọn trong Swift 4:

var myString:String? = nil

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

Khi chúng tôi chạy chương trình trên bằng sân chơi, chúng tôi nhận được kết quả sau:

myString has nil value

Tùy chọn tương tự như sử dụng nil với các con trỏ trong Objective-C, nhưng chúng hoạt động với mọi kiểu, không chỉ các lớp.

Buộc mở gói

Nếu bạn đã xác định một biến là optional, sau đó để nhận giá trị từ biến này, bạn sẽ phải unwrapnó. Điều này chỉ có nghĩa là đặt một dấu chấm than ở cuối biến.

Hãy lấy một ví dụ đơn giản -

var myString:String?

myString = "Hello, Swift 4!"

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

Khi chúng tôi chạy chương trình trên bằng sân chơi, chúng tôi nhận được kết quả sau:

Optional("Hello, Swift 4!")

Bây giờ, hãy áp dụng việc mở gói để nhận được giá trị chính xác của biến -

var myString:String?

myString = "Hello, Swift 4!"

if myString != nil {
   print( myString! )
} else {
   print("myString has nil value")
}

Khi chúng tôi chạy chương trình trên bằng cách sử dụng sân chơi, chúng tôi nhận được kết quả sau.

Hello, Swift 4!

Tự động mở gói

Bạn có thể khai báo các biến tùy chọn bằng cách sử dụng dấu chấm than thay vì dấu chấm hỏi. Các biến tùy chọn như vậy sẽ tự động mở ra và bạn không cần sử dụng thêm bất kỳ dấu chấm than nào ở cuối biến để nhận giá trị được chỉ định. Hãy lấy một ví dụ đơn giản -

var myString:String!
myString = "Hello, Swift 4!"

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

Khi chúng tôi chạy chương trình trên bằng sân chơi, chúng tôi nhận được kết quả sau:

Hello, Swift 4!

Ràng buộc tùy chọn

Sử dụng liên kết tùy chọn để tìm hiểu xem tùy chọn có chứa giá trị hay không và nếu có, để cung cấp giá trị đó dưới dạng hằng số hoặc biến tạm thời.

Một ràng buộc tùy chọn cho if tuyên bố như sau:

if let constantName = someOptional {
   statements
}

Hãy lấy một ví dụ đơn giản để hiểu cách sử dụng ràng buộc tùy chọn -

var myString:String?
myString = "Hello, Swift 4!"

if let yourString = myString {
   print("Your string has - \(yourString)")
} else {
   print("Your string does not have a value")
}

Khi chúng tôi chạy chương trình trên bằng sân chơi, chúng tôi nhận được kết quả sau:

Your string has - Hello, Swift 4!