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

  • JorteexHD

    JorteexHD

    20 NİSAN 2012
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006