Latest web development tutorials

Swift opsional (optionals) Ketik

Swift opsional (pilihan) jenis, digunakan ketika menangani nilai-nilai yang hilang. berarti opsional "di mana ada nilai, dan itu adalah sama dengan x" atau "tidak ada nilai."

bahasa Swfit akhiran definisi? Opsional sebagai jenis yang bernama steno, dengan kata lain, dua pernyataan berikut ini adalah ekuivalen:

var optionalInteger: Int?
var optionalInteger: Optional<Int>

Dalam kedua kasus, variabel optionalInteger adalah opsional tipe integer. Perhatikan bahwa, dalam jenis dan? Tidak ada ruang antara.

Opsional adalah penghitungan yang mengandung kedua kasus, ada dan Beberapa (T), digunakan untuk menunjukkan hal itu mungkin atau mungkin tidak memiliki nilai. Setiap jenis dapat secara eksplisit dinyatakan sebagai (atau implisit konversi) jenis opsional. Ketika Anda mendeklarasikan tipe opsional waktu, pastikan untuk menggunakan tanda kurung? Operator kisaran yang tepat. Sebagai contoh, opsional array integer deklarasi, harus ditulis (Int []);? Ditulis sebagai Int [] Error?.

Ketika Anda mendeklarasikan atribut variabel atau opsional opsional tidak tersedia ketika nilai awal, default nilainya nihil.

Opsional tindak perjanjian LogicValue, dapat muncul dalam konteks boolean. Dalam hal ini, jika jenis T opsional? Mengandung jenis nilai T (yang mengatakan nilainya Optional.Some (T)), jenis opsional ini sama benar, jika itu adalah palsu.

Jika sebuah contoh opsional dari jenis yang mengandung nilai, Anda dapat menggunakan operator postfix! Untuk mengakses nilai sebagai berikut:

optionalInteger = 42
optionalInteger! // 42

Menggunakan operator! Untuk memperoleh variabel opsional adalah nihil akan ada run-time kesalahan.

Anda dapat menggunakan link opsional dan mengikat opsional selektif untuk melakukan operasi pada ekspresi opsional. Jika nilai nihil, tidak ada operasi yang dilaksanakan, tidak akan dijalankan error.

Mari kita lihat contoh berikut untuk mempelajari jenis opsional Swift aplikasi:

import Cocoa

var myString:String? = nil

if myString != nil {
    print(myString)
}else{
    print("字符串为 nil")
}

Atas hasil pelaksanaan program:

字符串为 nil

Jenis opsional mirip dengan nilai pointer nil di Objective-C, tetapi hanya untuk kelas nihil (kelas) berguna tapi opsional untuk semua jenis jenis yang tersedia, dan lebih aman.


Dipaksa untuk menyelesaikan

Setelah Anda menentukan jenis yang mengandung nilai-nilai opsional, Anda dapat menambahkan nama opsional di belakang tanda seru (!) Untuk mendapatkan nilai. Tanda seru berkata, "Saya tahu bahwa ada nilai-nilai opsional, menggunakannya." Ini disebut wajib opsional nilai diurai (terpaksa membuka bungkusan).

Contohnya adalah sebagai berikut:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

Atas hasil pelaksanaan program:

Optional("Hello, Swift!")

Paksa nilai opsional analitis, menggunakan tanda seru (!):

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   // 强制解析
   print( myString! )
}else{
   print("myString 值为 nil")
}

Atas hasil pelaksanaan program:

Hello, Swift!

Catatan:
Gunakan ! Untuk mendapatkan nilai opsional tidak ada akan menghasilkan kesalahan runtime. Gunakan ! Sebelum memaksa nilai analitis, Anda harus menentukan secara opsional mengandung non nil nilai.


mengurai secara otomatis

Anda dapat mengganti tanda tanya ketika Anda mendeklarasikan seru opsional variabel mark (!) (?). Bila menggunakan ini variabel opsional Anda tidak perlu ditambah tanda seru (!) Untuk mendapatkan nilai, maka secara otomatis akan mengurai.

Contohnya adalah sebagai berikut:

import Cocoa

var myString:String!

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

Atas hasil pelaksanaan program:

Hello, Swift!

Bind opsional

Menggunakan binding opsional (opsional mengikat) untuk menentukan apakah jenis opsional mengandung nilai, jika mengandung nilai yang diberikan untuk menempatkan variabel sementara atau konstan. Opsional mengikat dapat digunakan dalam jika dan ketika laporan untuk menilai nilai jenis opsional dan memberikan nilai pada sebuah konstanta atau variabel.

Seperti pernyataan ini jika ditulis dalam opsional mengikat:

if let constantName = someOptional {
    statements
}

Mari kita lihat contoh mengikat alternatif sederhana:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if let yourString = myString {
   print("你的字符串值为 - \(yourString)")
}else{
   print("你的字符串没有值")
}

Atas hasil pelaksanaan program:

你的字符串值为 - Hello, Swift!