«language-design» etiketlenmiş sorular

Programlama dillerinin herhangi bir yönünün tasarımı ile ilgili sorular için bir etiket.

8
Diziler neden kovaryant, fakat jenerikler değişmez?
Joshua Bloch'un Etkili Java'sından, Diziler, genel türden iki önemli şekilde farklıdır. İlk diziler kovaryanttır. Jenerikler değişmezdir. Kovaryant, basitçe, X, Y'nin alt tipi ise, X [] 'nin de Y [] alt tipi olacağı anlamına gelir. Diziler kovaryanttır Dize Object So alt türü olduğu için String[] is subtype of Object[] Değişmez, X'in …



5
Java neden Throwable'ın jenerik alt sınıflarına izin vermiyor?
Göre Java Dil Sepecification , 3rd edition: Genel bir sınıfın doğrudan veya dolaylı bir alt sınıfı olması, derleme zamanı hatasıdır Throwable. Bu kararın neden verildiğini anlamak isterim. Genel istisnaların nesi yanlış? (Bildiğim kadarıyla, jenerikler basitçe derleme zamanı sözdizimsel şekerlerdir ve dosyalarda Objectyine de tercüme edilecekler .class, o kadar etkili bir …


7
Ruby neden hem özel hem de korunan yöntemlere sahip?
Bu makaleyi okumadan önce , Ruby'deki erişim denetiminin şöyle çalıştığını düşündüm: public- herhangi bir nesne ile erişilebilir (ör. Obj.new.public_method) protected - yalnızca nesnenin kendisinden ve alt sınıflardan erişilebilir private - korunanlarla aynı, ancak yöntem alt sınıflarda mevcut değil Ancak, anlaşılmaktadır protectedve privateaynı hareket sen diyemezsin gerçeğini hariç privateaçık seçik bir …



28
Neden “yakala” ya da “nihayet” te “try” kapsamında değişkenler bildirilmiyor?
C # ve Java'da (ve muhtemelen diğer dillerde de), "try" bloğunda bildirilen değişkenler, karşılık gelen "catch" veya "nihayet" bloklarda kapsam dahilinde değildir. Örneğin, aşağıdaki kod derlenmez: try { String s = "test"; // (more code...) } catch { Console.Out.WriteLine(s); //Java fans: think "System.out.println" here instead } Bu kodda, catch bloğundaki …

10
Neden bir python dict.update () nesneyi döndürmüyor?
Yapmaya çalışıyorum: award_dict = { "url" : "http://facebook.com", "imageurl" : "http://farm4.static.flickr.com/3431/3939267074_feb9eb19b1_o.png", "count" : 1, } def award(name, count, points, desc_string, my_size, parent) : if my_size > count : a = { "name" : name, "description" : desc_string % count, "points" : points, "parent_award" : parent, } a.update(award_dict) return self.add_award(a, siteAlias, …

13
C ++ neden ayrı bir başlık dosyasına ihtiyaç duyuyor?
C ++ neden .cpp dosyasındaki ile aynı işlevlere sahip ayrı bir başlık dosyasına ihtiyaç duyduğunu hiç anlamadım. Sınıf oluşturmayı ve onları yeniden düzenlemeyi çok zorlaştırır ve projeye gereksiz dosyalar ekler. Ve sonra başlık dosyalarını dahil etmekle ilgili bir sorun var, ancak önceden eklenmiş olup olmadığını açıkça kontrol etmek zorunda. C …

24
Değişken isimleri neden sayılarla başlayamıyor?
Bir süre önce yeni bir C ++ geliştiricisiyle çalışıyordum, şu soruyu sordu: "Değişken isimleri neden sayılarla başlayamıyor?" Bazı sayıların içinde metin olabileceği (123456L, 123456U) dışında bir cevap bulamadım ve derleyiciler bir miktar alfa karakterli her şeyin değişken adı olduğunu düşünseler bu mümkün olmazdı. Doğru cevap bu muydu? Başka sebep var …


9
String switch ifadesi neden boş bir durumu desteklemiyor?
Merak ediyorum neden Java 7 switchifadesi bir nullvakayı desteklemiyor ve bunun yerine atıyor NullPointerException? Aşağıdaki yorum satırına bakın (örnek Java Tutorials makalesindenswitch alınmıştır ): { String month = null; switch (month) { case "january": monthNumber = 1; break; case "february": monthNumber = 2; break; case "march": monthNumber = 3; break; …

8
Başlıkta neden C ++ satır içi işlevler var?
NB Bu, satır içi işlevlerin nasıl kullanılacağı veya nasıl çalıştıkları ile ilgili bir soru değildir, daha çok neden oldukları gibi yapıldıklarıdır. Bir sınıf üyesi işlevin bildiriminin bir işlevi tanımlaması gerekmez inline, bu yalnızca işlevin gerçek uygulamasıdır. Örneğin, başlık dosyasında: struct foo{ void bar(); // no need to define this as …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.