«language-design» etiketlenmiş sorular

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

30
“En Küçük Şaşkınlık” ve Değişken Varsayılan Argüman
Python ile yeterince uzun süre uğraşan herkes aşağıdaki sorunla ısırıldı (veya parçalara ayrıldı): def foo(a=[]): a.append(5) return a Python acemi bu işlev her zaman yalnızca bir eleman içeren bir liste dönmek için beklenir: [5]. Sonuç bunun yerine çok farklı ve çok şaşırtıcı (bir acemi için): >>> foo() [5] >>> foo() …

16
Java neden imzalanmamış girişleri desteklemiyor?
Java neden imzasız tamsayılar için destek içermiyor? Beklenmedik derecede büyük girdide taşma üretme olasılığı daha düşük olan kod yazmalarına izin verildiği için garip bir ihmal gibi görünüyor. Ayrıca, imzasız tamsayıların kullanılması bir tür kendi kendine dokümantasyon olabilir, çünkü imzasız int'in sahip olması amaçlanan değerin asla negatif olması gerektiğini göstermezler. Son …

13
Neden C # 'da == ve! = Tanımlamalıyız?
C # derleyicisi, özel bir tür operatörü tanımladığında ==, bunu tanımlaması gerektiğini de gerektirir !=( buraya bakın ). Neden? Tasarımcıların neden gerekli olduğunu düşündüklerini merak ediyorum ve derleyici neden sadece diğeri mevcut olduğunda operatörlerden herhangi biri için makul bir uygulamaya geçemiyor. Örneğin, Lua sadece eşitlik operatörünü tanımlamanızı sağlar ve diğerini …

5
Java 8 arayüz yöntemlerinde neden “son” a izin verilmiyor?
Java 8'in en kullanışlı özelliklerinden biri defaultarabirimlerdeki yeni yöntemlerdir. Bunların tanıtılmasının esasen iki nedeni vardır (başkaları da olabilir): Gerçek varsayılan uygulamaları sağlama. Misal:Iterator.remove() JDK API gelişimine izin verme. Misal:Iterable.forEach() Bir API tasarımcının bakış açısından, örneğin arayüz yöntemleri üzerinde diğer değiştiricileri kullanmak isterdim final. Bu, uygulama yöntemleri eklenirken, uygulama sınıflarında "yanlışlıkla" …


5
Prototipal kalıtımın klasiklere göre faydaları?
Sonunda tüm bu yıllar boyunca ayaklarımı sürüklemeyi bıraktım ve JavaScript'i "düzgün" öğrenmeye karar verdim. Diller tasarımının en temel unsurlarından biri mirasın uygulanmasıdır. Ruby'de deneyim sahibi olduğum için, kapanışları ve dinamik yazmayı gördüğüm için çok mutlu oldum; ama benim hayatım için miras için başka örnekleri kullanarak nesne örneklerinden ne gibi faydalar …

11
Javascript V8 hızını elde etmek için Ruby, Python'u engelleyen nedir? [kapalı]
Kapalı . Bu sorunun daha fazla odaklanması gerekiyor . Şu anda cevapları kabul etmiyor. 5 yıl önce kapalı . Kilitli . Bu soru ve cevapları kilitlidir çünkü soru konu dışıdır, ancak tarihsel önemi vardır. Şu anda yeni yanıtları veya etkileşimleri kabul etmiyor. (Örneğin optimizasyonlar uygulanmasını engelleyen tüm Yakut / Python …


5
“This” anahtar kelimesi bir işlev içinde nasıl çalışır?
JavaScript'te ilginç bir durumla karşılaştım. Nesne değişmez gösterim kullanarak birkaç nesne tanımlayan bir yöntemle bir sınıf var. Bu nesnelerin içinde thisişaretçi kullanılıyor. Programın davranışından, thisişaretçinin değişmez tarafından oluşturulan nesneye değil, yöntemin çağrıldığı sınıfa başvurduğuna karar verdim . Çalışmasını beklediğim gibi olsa da, bu keyfi görünüyor. Bu tanımlanmış davranış mı? Çapraz …

12
Python'un neden bir işaret işlevi yok?
Python'un neden bir signişlevi olmadığını anlayamıyorum . Bir absyerleşkesi var (ki signkız kardeşi olduğunu düşünüyorum ), ama hayır sign. Python 2.6'da copysign( matematikte ) bir işlev bile var , ancak işaret yok. Neden yazmaya zahmet copysign(x,y)sen sadece bir yazabilirsiniz zaman signsonra olsun copysigndoğrudan abs(x) * sign(y)? İkincisi çok daha açık …

5
Bir dizi neden Yinelenebilir'e atanamıyor?
Java5 ile şunları yazabiliriz: Foo[] foos = ... for (Foo foo : foos) veya sadece for döngüsünde bir Yinelenebilir kullanarak. Bu çok kullanışlı. Ancak bu şekilde yinelenebilir için genel bir yöntem yazamazsınız: public void bar(Iterable<Foo> foos) { .. } ve yinelenebilir olmadığı için onu bir dizi ile çağırmak: Foo[] foos …

7
Neden C # soyut statik yöntemleri olamaz?
Son zamanlarda sağlayıcılarla epeyce çalışıyorum ve soyut bir statik yöntem olan soyut bir sınıfa sahip olmak istediğim ilginç bir durumla karşılaştım. Konuyla ilgili birkaç gönderi okudum ve bu bir anlam ifade etti, ancak güzel bir açıklama var mı?
182 c#  .net  language-design 


3
Neden ifade (j ++); yasak?
Aşağıdaki kod yanlış ( ideone'de bakınız ): public class Test { public static void Main() { int j = 5; (j++); // if we remove the "(" and ")" then this compiles fine. } } hata CS0201: Yalnızca atama, çağrı, arttırma, azaltma, bekletme ve yeni nesne ifadeleri ifade olarak kullanılabilir …

13
Birisi yeni bir programlama dili yazdığında, ne yazıyor?
Lütfen cehaletimi affedin. PHP'de dabbling ve ayaklarım SO tarama ıslak ve yıllardır merak ediyorum bir soru sormak zorunda hissediyorum: Tamamen yeni bir programlama dili yazdığınızda, ona ne yazıyorsunuz ? Muhtemelen çok saygım olan tüm programcılar için gerçekten aptalca geliyor, ama bu benim için şaşırtıcı bir tavuk ve yumurta şey. Ne …

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.