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

  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • ravinderosahn

    ravinderosah

    20 Temmuz 2009
  • spectragirlz16's channel

    spectragirlz

    22 Ocak 2012