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

  • Absolute Zero(Programming Tutorials)

    Absolute Zer

    22 Kasım 2012
  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010
  • MW Technology

    MW Technolog

    28 EKİM 2009