Peki Swift jenerik sınıf sabitlerini tanımlıyorsunuz?Hızlı bir genel sınıfta statik sabit nasıl tanımlanır?
"normal" bir sınıf için sorun
böyle tanımlayabiliriz:
class C {
static let k = 1
}
let a = C.k // 1
Ama genel bir sınıfın aynı yaparsanız:
class C<T> {
static let k = 1
}
Sen derleme aşağıdaki hatayı alıyorum:
Statik saklanan ürünlerin henüz Peki bu nasıl çözmek için genel türler
desteklenmez?
Şu anda
Bulunduğum çözüm Bunu çözmek için struct
kullanıyorum:
struct CConstant {
static let K = 1
}
Bu genel sınıfın kapsamında tanımlanan ama benim için çalışıyor değildir. Daha iyi bir çözümünüz var mı?
-
ps: bu
Yanıtladığınız için teşekkür ederiz! Öneriniz mevcut çözümümün aynı yönünde görünüyor. Sadece içeriğe bağlı olarak erişimcileri belirtmem gerekiyor. Tam olarak neden "Statik saklanan özelliklerin genel türlerde desteklenmediğini biliyor musunuz?" – ghashi
Tipik parametrelerini belirtmeden jenerik tür kullanamayacağınız için henüz desteklenmediklerini düşünüyorum. Ve bu statik özellik erişmek istiyorsanız 'SomeClass .someConstant' çirkin görünecektir. Türü parametrelerini belirtmeden çalışmasını sağlamak için derleyicide bunu uygulamak gerekir ve bu Swift ekibi için en öncelikli görev değil. –
mixel