-.. Introducción y breve reseña del lenguaje de programación D. También
- se presentan las necesidades particulares de D con respecto al
- recolector de basura y su estado actual.
- ESTADO: TERMINADO, CORREGIDO
-
-
.. highlight:: d
.. _d_lang:
Ejemplo de especialización::
+ T sumar(T)(T x, T y) { return x + y; }
T sumar(T: int)(T x, T y) { return x + y + 1; }
auto i = sumar(5, 6); // i == 12
auto f = sumar(5.0f, 6.0f) // f == 11.0f
Ejemplo de especialización parcial::
+ T sumar(T)(T x, T y) { return x + y; }
T sumar(T: T*)(T x, T y) { return *x + *y; }
int x = 5, y = 6;
auto i = sumar(&x, &y); // i == 11
}
int sumar(int a, int b) {
- mixin(generar_sumar!("a", b"));
+ mixin(generar_sumar!("a", "b"));
}
Expresiones ``is``
Programación de alto nivel se refiere a construcciones más avanzadas que una
sentencia para iterar; expresiones con una semántica más ricas que proveen de
-mayor expresividad al programador o le permiten focalizarse de mejora manera
+mayor expresividad al programador o le permiten focalizarse de mejor manera
en los algoritmos independizándose del *hardware* o de como funciona una
computadora. Es exactamente el opuesto a :ref:`d_low_level`.
Valor de inicialización por omisión (ejemplo: ``float.init`` -> *NaN*
[#dnan]_).
- .. [#dnan] Del inglés *Not A Number*, es un valor especial que indica que
- estamos ante un valor inválido.
+ .. [#dnan] Del inglés *Not A Number*, es un valor especial codificado según
+ IEEE 754-2008 [IEEE754]_ que indica que estamos ante un valor inválido.
``stringof``
Representación textual del símbolo o expresión (ejemplo:
``(1+2).stringof`` -> ``"1 + 2"``).
``mangleof``
- Representación textual del tipo *mutilado* [#dmangle]_.
+ Representación textual del tipo *mutilado* [#dmangle]_ [DWAB]_.
- .. [#dmangle] *Name mangling* es el nombre dado comunmente a una técnica
+ .. [#dmangle] *Name mangling* es el nombre dado comúnmente a una técnica
necesaria para poder sobrecargar nombres de símbolos. Consiste en
codificar los nombres de las funciones tomando como entrada el nombre de
la función y la cantidad y tipo de parámetros, asegurando que dos
Estos son solo los *properties* predefinidos para todos los tipos, pero hay
una cantidad considerable de *properties* extra para cada tipo.
- Más información sobre *properties* de clases en
- http://www.digitalmars.com/d/1.0/property.html#classproperties y sobre
- *properties* predefinidos en
- http://www.digitalmars.com/d/1.0/property.html
-
.. _d_dbc:
basura (en la mayoría de los casos el recurso a administrar es
sencillamente memoria). Sin embargo en los casos en donde es necesario,
puede utilizarse *RAII* mediante la utilización de la palabra reservada
- ``scope``, que limita la vida de un objeto un bloque de código [DWES]_.
+ ``scope``, que limita la vida de un objeto a un bloque de código [DWES]_.
Ejemplo::