2016-06-12 5 views
-1

値を持たない(すでに存在する変数)Intを作成したい。もし私がこれをすれば;値を持たない整数(intを値に設定しない)

number = Int() 

それでも値は0です。私は何もしない、存在しない価値です。

+2

唯一の方法は「Int?」です – vadian

+1

あなたにはオプションが必要です:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/ uid/TP40014097-CH5-ID330 – Moritz

+0

'var number:Int?' –

答えて

9

ため、このリンクを参照してください!

nilに設定できる変数を作成するには、 ?または !終わりに(私は後で違いについて話しましょう)で明示的にタイプ名を記述する必要があります。

あなたはnilに設定することができIntをしたい場合は、例えば、型名で変数を宣言:

var myInt: Int 

、その後、あなたは?を追加します。

var myInt: Int? 

その後、 myIntnilなど任意の値に設定できます。

myInt = nil 
myInt = 0 

このタイプ名は?スウィフトの表記法は「オプションの種類」として知られています。

だけでなく、あなたが変数と定数にoptionalsを使用することができます、またメソッド/関数のシグネチャでそれを使用することができます。

func myUselessFunc(value: Int?) -> Int? { 
    return value 
} 

わかりましたので、!?の違いは何ですか?

!は、JavaおよびC#の参照型と同じように動作します。 ?!のより安全なバージョンのようです。

IntmyInt)というオプションがあります。そのdescriptionにアクセスしたいとします。

myIntlet myInt: Int?として宣言された場合

myInt?.description 

myIntは疑問符で、あなたが終了するたびに疑問符を追加する必要があることlet myInt: Int!

myInt.description 

お知らせとして宣言された場合プロパティ/メソッドmyIntにアクセスする必要があります。これは「オプションタイプのアンラッピング」と呼ばれます。

接尾辞が!のタイプは、「暗黙的にアンラップされたオプションタイプ」と呼ばれます。これらのタイプを扱うときは、そのタイプを展開する必要はありません。ただし、myIntnilの場合、エラーが発生します。 myIntnilの場合、式全体がちょうどnilを返すので、これは?タイプでは発生しません。

これは、初めてオプショナルアイテムを操作するときに注意するべきことです。

関連する問題