Swift学習——Swift基礎詳細(六)
Optionalsオプション
オプション(そうではないようです)は、値が空の場合に適用されます.1つのオプションには、値が存在し、xに等しい場合、または値が存在しない場合の2つがあります.
オプションの概念はOCとCにはありません.OCで最も近い概念は、OCの戻り値がオブジェクトの関数であり、オブジェクトが存在しない場合はnilを返すことができますが、nilはオブジェクトを表すだけで、基礎タイプや構造体、列挙タイプを表すことはできません.OCでNSNotFoundを使用して値が存在しないことを示します.Swiftでは、存在しない値を他のタイプで表す必要はありません.
例を挙げます.
SwiftではStringタイプにtoIntという方法がありますが、すべてのStringがIntに変換できるわけではありません.
If Statements and Forced Unwrapping if条件文と強制解析
IF条件文を使用して、選択に値があるかどうかを判断することができます.選択に値が含まれていると判断したら、選択の名前の後ろに感嘆符(!)を付けることができます.このオプションに値が含まれていることを知っています.このプロセスは、オプション値の強制解析と呼ばれています.
Optional Bindingオプションバインド
オプションバインドを使用して、オプション値に値があるかどうかを判断できます.値がある場合は、この値を定数または変数としてifまたはwhile文を使用して判断および付与できます.
上記の強制解析を書き換え、オプションバインドを使用して、選択した割り当て値が空かどうかを判断できます.
もしそうならtoIntで得られたオプション整型には値が含まれており、この値を格納するために定数actualNumberを定義します.
変換に成功した場合、actualNumberはifの最初の条件で使用できます.初期化にはオプション値が含まれています.使用する必要はありません.に表示されます.
オプションのバインドでは、変数を使用したり定数を使用したりできます.
Nil空の値
注意:SwiftのnilとOCのnilは意味が異なり、OCのnilはタイプのないオブジェクトを指定するポインタであり、Swiftではnilは特定のタイプの空の省値であり、どのタイプの選択値もnilに設定でき、必ずしもオブジェクトタイプではない.
オプション(そうではないようです)は、値が空の場合に適用されます.1つのオプションには、値が存在し、xに等しい場合、または値が存在しない場合の2つがあります.
オプションの概念はOCとCにはありません.OCで最も近い概念は、OCの戻り値がオブジェクトの関数であり、オブジェクトが存在しない場合はnilを返すことができますが、nilはオブジェクトを表すだけで、基礎タイプや構造体、列挙タイプを表すことはできません.OCでNSNotFoundを使用して値が存在しないことを示します.Swiftでは、存在しない値を他のタイプで表す必要はありません.
例を挙げます.
SwiftではStringタイプにtoIntという方法がありますが、すべてのStringがIntに変換できるわけではありません.
let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()
// convertedNumber is inferred to be of type "Int?", or "optional Int
toIntが失敗する可能性があるため、オプションのIntタイプ(Intと書く)を返します.Intタイプではなく、この戻り値がIntタイプの値であっても、値がない可能性があることを示します.If Statements and Forced Unwrapping if条件文と強制解析
IF条件文を使用して、選択に値があるかどうかを判断することができます.選択に値が含まれていると判断したら、選択の名前の後ろに感嘆符(!)を付けることができます.このオプションに値が含まれていることを知っています.このプロセスは、オプション値の強制解析と呼ばれています.
if convertedNumber {
println("\(possibleNumber) has an integer value of \(convertedNumber!)")
} else {
println("\(possibleNumber) could not be converted to an integer")
}
// prints "123 has an integer value of 123
が使用されています!前に、必ずオプション値に本物の値が格納されていることを保証し、空ではありません.Optional Bindingオプションバインド
オプションバインドを使用して、オプション値に値があるかどうかを判断できます.値がある場合は、この値を定数または変数としてifまたはwhile文を使用して判断および付与できます.
上記の強制解析を書き換え、オプションバインドを使用して、選択した割り当て値が空かどうかを判断できます.
if let actualNumber = possibleNumber.toInt() {
println("\(possibleNumber) has an integer value of \(actualNumber)")
} else {
println("\(possibleNumber) could not be converted to an integer")
}
// prints "123 has an integer value of 123"
上記の手順は、もしそうならtoIntで得られたオプション整型には値が含まれており、この値を格納するために定数actualNumberを定義します.
変換に成功した場合、actualNumberはifの最初の条件で使用できます.初期化にはオプション値が含まれています.使用する必要はありません.に表示されます.
オプションのバインドでは、変数を使用したり定数を使用したりできます.
Nil空の値
var serverResponseCode: Int? = 404
// serverResponseCode contains an actual Int value of 404
serverResponseCode = nil
// serverResponseCode now contains no value
定数と変数を定義するときに付与されていない場合、デフォルトの値はnilです.var surveyAnswer: String?
// surveyAnswer is automatically set to nil
注意:SwiftのnilとOCのnilは意味が異なり、OCのnilはタイプのないオブジェクトを指定するポインタであり、Swiftではnilは特定のタイプの空の省値であり、どのタイプの選択値もnilに設定でき、必ずしもオブジェクトタイプではない.