Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cuando una anotación es condicional, puede requerir otras anotaciones para especificarlo al analizador. Por ejemplo, si una función tiene una variable que puede ser sincrónica o asincrónica, la función se comporta de la siguiente manera: en el caso sincrónico, siempre se ejecuta correctamente, pero, en el caso asincrónico, notifica un error si no se puede ejecutar correctamente de forma inmediata. Cuando se llama a la función de forma sincrónica, comprobar el valor de resultado no proporciona ningún valor al analizador de código porque no habría devuelto resultados. Sin embargo, cuando se llama a la función de forma asincrónica y no se comprueba el resultado de la función, podría producirse un error grave. En este ejemplo se muestra una situación en la que podría usar la anotación _When_, descrita más adelante en este artículo, para habilitar la comprobación.
Anotaciones estructurales
Para controlar cuándo y dónde se aplican las anotaciones, use las siguientes anotaciones estructurales.
| Anotación | Descripción |
|---|---|
_At_(expr, anno-list) |
expr es una expresión que produce un valor lvalue. Las anotaciones de anno-list se aplican al objeto denominado por expr. Para cada anotación de anno-list, expr se interpreta en condición previa si la anotación se interpreta en condición previa y en condición posterior si la anotación se interpreta en condición posterior. |
_At_buffer_(expr, iter, elem-count, anno-list) |
expr es una expresión que produce un valor lvalue. Las anotaciones de anno-list se aplican al objeto denominado por expr. Para cada anotación de anno-list, expr se interpreta en condición previa si la anotación se interpreta en condición previa y en condición posterior si la anotación se interpreta en condición posterior.iter es el nombre de una variable cuyo ámbito es la anotación (incluido anno-list).
iter tiene un tipo implícito long. Las variables con nombre idéntico en cualquier ámbito envolvente están ocultas de la evaluación.elem-count es una expresión que se evalúa como un entero. |
_Group_(anno-list) |
Se considera que todas las anotaciones de anno-list tienen algún calificador que se aplique a la anotación de grupo que se aplica a cada anotación. |
_When_(expr, anno-list) |
expr es una expresión que se puede convertir en bool. Cuando es distinto de cero (true), las anotaciones especificadas en anno-list se consideran aplicables.De forma predeterminada, para cada anotación de anno-list, expr se interpreta como que usa los valores de entrada si la anotación es una condición previa y como que usa los valores de salida si la anotación es una condición posterior. Para invalidar el valor predeterminado, puede usar la función intrínseca _Old_ al evaluar una condición posterior para indicar que se deben usar los valores de entrada.
Nota: Es posible que se habiliten diferentes anotaciones como consecuencia de usar _When_ si un valor mutable (por ejemplo, *pLength) está involucrado porque el resultado evaluado de expr en la condición previa puede diferir de su resultado evaluado en la condición posterior. |