SORU
9 HAZİRAN 2014, PAZARTESİ


Swift değişken ile " dekorasyon;?&"(soru işareti) ve "!&; (ünlem işareti)"

Swift, tüm değişkenleri bir değer olmalıdır, ve optionals kullanarak 3 ** ayarlamak için bir değişken başlangıçta ayarlayabilirsiniz anlıyorum.

Ne bu "isteğe bağlı" olarak bir değeri yeteneğini inceliyor etki altında olduğum için, ! ile bir değişken ayarı ne yapıyor anlamıyorum Böyle yaparak, eskiden görünce neden olan değişken, paketini açmak için bir değeri olduğunu garanti düşündüm.

Yani basitçe, değişken böyle bir şey yapmak için başlatılmış nedir: koyun

var aShape : CAShapeLayer!

Ve neden/ne zaman böyle bir şey yapayım?

CEVAP
9 HAZİRAN 2014, PAZARTESİ


Türü bildirimindeki ! ? benzer. Hem isteğe bağlı, ama ! "implicitly unwrapped" optional değeri erişmek için açmak zorunda değilsiniz, yani (ama hala sıfır da olabilir). bir

Bu temelde biz zaten objective-c vardı davranıştır. Bir değerolabilirnil, ve bunu kontrol etmek için var, ama aynı zamanda sadece isteğe bağlı olmasaydı, değeri doğrudan erişebilirsiniz.

// Cannot be nil
var x: Int = 1

// The type here is not "Int", it's "Optional Int"
var y: Int? = 2

// The type here is "Implicitly Unwrapped Optional Int"
var z: Int! = 3

Kullanımı:

// you can add x and z
x   z == 4

// ...but not x and y, because y needs to be unwrapped
x   y // error

// to add x and y you need to do:
x   y!

// but you *should* do this:
if let y_val = y {
    x   y_val
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • TheForgottenGamer1

    TheForgotten

    28 AĞUSTOS 2009
  • Visual Life

    Visual Life

    3 Temmuz 2006