Bunu, dilin önceki bir sürümünde yapabileceğime inandım, ve birkaç ay önce yazdığım kod, daha sonra derlenmiş, şimdi derleme değil. Örnek:D'de, kendisinin değişmez olduğu immutable türlerin bir karma olduğunu nasıl bildirebilirim?
immutable(X)[int] myhash;
myhash[5] = some_immutable_X; //previously fine.
myhash[5] = some_other_immutable_X; //previously fine also.
Şimdi ancak dmd başarı olmadan bazı diğer olası sözdizimi İle denediği
Error: cannot modify immutable expression myhash[5]
ile şikayet (örn (iletmenin X) [int]). Artık karmanın kendisinin değişebilir olduğunu beyan etmenin bir yolu yok gibi görünüyor, ama içerikler değil mi? Bu oldukça yaygın bir kullanım durumu gibi görünüyor: değiştirilmemesi gereken şeylere referansların saklanması için bir veri yapısı. Bunun hakkında bir fikir sahibi olan var mı?
X değeri mi yoksa referans tipi mi (sınıf)? –
Ne işe yaramaz, hem de 2.066.1 ile iyi çalışır ve – Kozzi11
X'den önce bir sınıf (örn. Bir başvuru). –