Domande taggate «language-design»

Un tag per domande relative alla progettazione di qualsiasi aspetto dei linguaggi di programmazione.


16
Perché Java non supporta gli integ non firmati?
Perché Java non include il supporto per numeri interi senza segno? Mi sembra una strana omissione, dato che consentono di scrivere codice che ha meno probabilità di produrre overflow su input inaspettatamente grandi. Inoltre, l'uso di numeri interi senza segno può essere una forma di autocertificazione, poiché indicano che il …

13
Perché dobbiamo definire sia == che! = In C #?
Il compilatore C # richiede che ogni volta che un tipo personalizzato definisce l'operatore ==, deve anche definire !=(vedi qui ). Perché? Sono curioso di sapere perché i progettisti lo hanno ritenuto necessario e perché il compilatore non può portare a una ragionevole implementazione per uno degli operatori quando è …

5
Perché "final" non è consentito nei metodi di interfaccia Java 8?
Una delle funzionalità più utili di Java 8 sono i nuovi defaultmetodi sulle interfacce. Ci sono essenzialmente due ragioni (potrebbero essercene altre) per cui sono state introdotte: Fornire implementazioni predefinite effettive. Esempio:Iterator.remove() Consentire l'evoluzione dell'API JDK. Esempio:Iterable.forEach() Dal punto di vista di un progettista API, mi sarebbe piaciuto poter usare …






12
Perché Python non ha una funzione di segno?
Non riesco a capire perché Python non abbia una signfunzione. Ha un absbuiltin (che considero signla sorella), ma no sign. In python 2.6 c'è anche una copysignfunzione (in matematica ), ma nessun segno. Perché preoccuparsi di scrivere un copysign(x,y)quando si potrebbe semplicemente scrivere un signe quindi ottenere copysigndirettamente da abs(x) …

5
Perché un array non è assegnabile a Iterable?
con Java5 possiamo scrivere: Foo[] foos = ... for (Foo foo : foos) o semplicemente usando un Iterable nel ciclo for. Questo è molto utile. Tuttavia non è possibile scrivere un metodo generico per iterable in questo modo: public void bar(Iterable<Foo> foos) { .. } e chiamandolo con un array …





Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.