Speicherdauer und Veränderlichkeit

Unterscheiden Sie zwischen dem Umfang und der Beschreibbarkeit von var, const und static.

Wave Foundation

Bedeutung jeder Erklärung

formatieren Zulässiger Standort Neuzuweisung Benutzen
var Funktion/Block möglich Gemeinsame veränderbare lokale Variablen
const oben Unmöglich Globale Konstantendeklaration
static oben möglich Statisch gespeicherte Deklarationen, die für die gesamte Lebensdauer des Programms bestehen
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);
}

Regeln für lokale Deklarationen

var value: i32 = 1;
value = 2;

Einer lokalen Variablen, die als var deklariert ist, kann ein neuer Wert zugewiesen werden. Konstanten, die im gesamten Programm verwendet werden sollen, werden auf der obersten Ebene als const deklariert.

Lokale Verwendung von const und static

const und static sind Deklarationen der obersten Ebene. Der Funktionskörper und die for-Initialisierung verwenden die lokale Deklaration var.

Lebensdauer und Zeiger

Sie können die Adresse einer lokalen Variablen als & erhalten, aber der Typ ptr<T> verfolgt nicht die tatsächliche Lebensdauer des Speichers, auf den der Zeiger zeigt. Bei der Übergabe einer lokalen Speicheradresse aus einer Funktion muss die Programmstruktur direkt sicherstellen, dass die Adresse gültig bleibt.

Lern- und Beispielbereich

Üben Sie mit dem vollständigen Programm · Standardbibliothek