値を持たない(すでに存在する変数)Intを作成したい。もし私がこれをすれば;値を持たない整数(intを値に設定しない)
number = Int()
それでも値は0
です。私は何もしない、存在しない価値です。
値を持たない(すでに存在する変数)Intを作成したい。もし私がこれをすれば;値を持たない整数(intを値に設定しない)
number = Int()
それでも値は0
です。私は何もしない、存在しない価値です。
ため、このリンクを参照してください!
がnil
に設定できる変数を作成するには、
?
または
!
終わりに(私は後で違いについて話しましょう)で明示的にタイプ名を記述する必要があります。
あなたはnil
に設定することができInt
をしたい場合は、例えば、型名で変数を宣言:
var myInt: Int
、その後、あなたは?
を追加します。
var myInt: Int?
その後、 myInt
をnil
など任意の値に設定できます。
myInt = nil
myInt = 0
このタイプ名は?スウィフトの表記法は「オプションの種類」として知られています。
だけでなく、あなたが変数と定数にoptionalsを使用することができます、またメソッド/関数のシグネチャでそれを使用することができます。
func myUselessFunc(value: Int?) -> Int? {
return value
}
わかりましたので、!
と?
の違いは何ですか?
!
は、JavaおよびC#の参照型と同じように動作します。 ?
は!
のより安全なバージョンのようです。
Int
(myInt
)というオプションがあります。そのdescription
にアクセスしたいとします。
myInt
が
let myInt: Int?
として宣言された場合
、
myInt?.description
myInt
は疑問符で、あなたが終了するたびに疑問符を追加する必要があることlet myInt: Int!
myInt.description
お知らせとして宣言された場合プロパティ/メソッドmyInt
にアクセスする必要があります。これは「オプションタイプのアンラッピング」と呼ばれます。
接尾辞が!
のタイプは、「暗黙的にアンラップされたオプションタイプ」と呼ばれます。これらのタイプを扱うときは、そのタイプを展開する必要はありません。ただし、myInt
がnil
の場合、エラーが発生します。 myInt
がnil
の場合、式全体がちょうどnil
を返すので、これは?
タイプでは発生しません。
これは、初めてオプショナルアイテムを操作するときに注意するべきことです。
オプションInt
が必要です。 「?」という質問をすることであなたはそれをnilで初期化することをマークします。
var number: Int?
すべての種類は、実際にnil
別名空の値に設定することができ、より詳細 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html
唯一の方法は「Int?」です – vadian
あなたにはオプションが必要です:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/ uid/TP40014097-CH5-ID330 – Moritz
'var number:Int?' –