-3

"?" を使用して、変数をオプションとして定義します。たとえば、次のようになります。

var name : String? 

次に、プログラム全体で、「?」を使用して変数名の値を取得します。次に例を示します。

print (name?)

とにかく「?」を取り除くことができますか?オプションの変数をアンラップするたびに。

4

3 に答える 3

2

これを回避するには、条件付きバインディングを使用する必要があります。

例えば:

var name : String?
name = "Hello world"

if let unwrappedName = name as? String
{
   // Now unwrappedName isn't optional
}

基本的に、unwrappedName は String AKA オプションではありません。

しかし、それは本当にあなたが達成しようとしているものに依存しますname.nilにならないことが確実にわかっている場合は、暗黙的にラップ解除を使用することをお勧めします:

var name : String!

ただし、暗黙的にアンラップされた名前を使用すると、名前が nil になる可能性があるため、条件付きバインディングを再度確認する必要があることが示唆されます。変数が決して nil にならないことがどれだけ確実かによって異なります。

于 2016-04-07T08:00:40.870 に答える
1

if letandを使用してオプションをアンラップする必要がありguard letます。

于 2016-04-07T07:58:45.300 に答える