Preguntas con la etiqueta [language-design]

Lista language-design preguntas

Java no permite herencia múltiple, pero permite implementar múltiples interfaces. ¿Por qué?

En Java hay un montón de métodos que tienen que ver con la manipulación de cadenas. El ejemplo más simple es el método String.split("algo"). Ahora bien, la definición real de

¿Por qué la asignación de Python es una declaración en lugar de una expresión? Si fuera una expresión que devuelve el valor del lado derecho de la asignación, habría permitido

De las respuestas que obtuve de esta pregunta , parece que C++ heredó este requisito de conversión shortde intcuando se realizan operaciones aritméticas de C. ¿Puedo explicarle por qué esto

Soy un gran admirador de dejar que el compilador haga todo el trabajo posible por usted. Al escribir una clase simple, el compilador puede brindarle lo siguiente de forma "gratuita":

¿Por qué debemos definir ambos == y! = en C#?

13
respuestas
359
votos
14.8k
vistas

El compilador de C# requiere que cada vez que un tipo personalizado defina operador ==, también debe definirlo !=(consulte aquí ). ¿Por qué? Tengo curiosidad por saber por qué los

Dado este código: trait Base { fn a(&self); fn b(&self); fn c(&self); fn d(&self); } trait Derived : Base { fn e(&self); fn f(&self); fn g(&self); } struct S; impl

Una de las características más útiles de Java 8 son los nuevos defaultmétodos en las interfaces. Básicamente, existen dos razones (puede haber otras) por las que se han introducido: Proporcionar

He estado buscando por un tiempo, pero no encuentro una respuesta clara. Mucha gente dice que utilizar sindicatos para hacer juegos de palabras no está definido y es una mala

¿Por qué el compilador no coloca automáticamente declaraciones de interrupción después de cada bloque de código en el cambio? ¿Es por razones históricas? ¿Cuándo le gustaría que se ejecutaran varios

De Java eficaz de Joshua Bloch, Las matrices se diferencian del tipo genérico en dos aspectos importantes. Las primeras matrices son covariantes. Los genéricos son invariantes. Covariante simplemente significa que

El "menor asombro" y el argumento mutable del default

34
respuestas
3.4k
votos
264.6k
vistas

Cualquiera que haya jugado con Python el tiempo suficiente ha sido mordido (o despedazado) por el siguiente problema: def foo(a=[]): a.append(5) return a Los principiantes en Python esperarían que esta

No he usado mucho C en los últimos años. Cuando leí esta pregunta hoy me encontré con una sintaxis de C con la que no estaba familiarizado. Aparentemente en C99