2012-02-03 12 views
9

que se sorprendió al descubrir que este código se compila:¿Qué son las variables puras?

pure string Foo = SomePureFunction(123); 

pure sólo se menciona en el contexto de las funciones en el online documentation.

¿Qué son las variables pure, y cómo son diferentes de immutable y const?

Respuesta

6

El atributo simplemente no tiene ningún efecto en este caso. Es un problema conocido en DMD, hay un buen número de casos similares, donde los atributos no son rechazados, pero tampoco tienen ningún efecto.

+0

¿Podría citar un informe de error o una discusión de la lista de correo? – Maxpm

+0

Puedo confirmarlo (aunque tampoco cito ningún error). – FeepingCreature

+0

[Este] (http://d.puremagic.com/issues/show_bug.cgi?id=3934) es un informe de error relacionado, pero si hay otros informes, probablemente sean para instancias específicas del problema. Cabe señalar, sin embargo, que en muchos casos, Walter Bright no considera que los atributos ignorados sean un error (aunque lo hace en algunos casos). Además, en algunos casos, ser estricto al respecto provocaría problemas para el código genérico. Por lo tanto, si es fijo o no es probable que se determine en una base [caso por caso] (http://d.puremagic.com/issues/show_bug.cgi?id=3118). –

Cuestiones relacionadas