Böyle künyelenen değerler için enum (bu bir oyuncak Şeması tercüman projesinden ise) vardır: Value(3)
döner çağıran önüne aldığımızdaNeden x olarak Float vakasının Herhangi bir değişkende bir anahtarda eşleşmemesine izin verelim?
init?(value:Any) {
switch v {
case let v as Int: self = .int(v)
case let v as Float: self = .float(v)
case let v as Bool: self = .bool(v)
...
default: return nil
}
}
:
enum Value {
case int(Int)
case float(Float)
case bool(Bool)
...
}
bunun için bir başlatıcı yazdı beklendiği gibi bir (isteğe bağlı) Value.int (3). Bool's ve diğer tipler de çalışıyor.
Ancak Value(0.1)
varsayılan durumu vurur ve nil
değerini döndürür.
'V' tanımlanır? –
Muhtemelen 'switch value' anlamına gelir. Literal 0.1, "Float" Flo değil – vadian
Luka, benim kötü. Sorunuma aktardığımda kodu biraz değiştiriyordum. "Init? (V: Any) ..." yazmalıdır. – Dietrich