Duración del almacenamiento y mutabilidad.
Distinga entre el alcance y la capacidad de escritura de var, const y static.
Wave Foundation
Significado de cada declaración
| formato | Ubicación permitida | reasignación | uso |
|---|---|---|---|
var |
Función/bloque | posible | Variables locales mutables comunes |
const |
arriba | Imposible | Declaración constante global |
static |
arriba | posible | Declaraciones almacenadas estáticas que existen durante la vida del programa. |
const PAGE_SIZE: i32 = 4096;
static request_count: i64 = 0;
fun main() {
var limit: i32 = 4;
var current: i32 = 0;
var retries: i32 = 0;
current += 1;
retries += 1;
println("{} {} {}", limit, current, retries);
}
Reglas de declaración local
var value: i32 = 1;
value = 2;
Se puede asignar un nuevo valor a una variable local declarada como var. Las constantes que se utilizarán en todo el programa se declaran en el nivel superior como const.
Uso local de const y static
const y static son declaraciones de nivel superior. El cuerpo de la función y la inicialización for utilizan la declaración local var.
Tiempo de vida y punteros
Puede obtener la dirección de una variable local como &, pero el tipo ptr<T> no rastrea la vida útil real del almacenamiento al que apunta el puntero. Al pasar una dirección de almacenamiento local fuera de una función, la estructura del programa debe garantizar directamente que la dirección siga siendo válida.