Stringa statica ruggine

Stringa statica ruggine
Una variabile statica si riferisce a un tipo di variabile che ha una posizione di memoria fissa. Sono simili alle variabili costanti tranne che rappresentano una posizione di memoria nel programma.

Le variabili statiche in ruggine possono avere un distruttore ma quel distruttore non viene mai gestito in quanto hanno una vita statica. Ciò significa che non si esauriscono mai l'ambito per tutta la vita del programma in cui sono dichiarati.

Nota Se una variabile viene dichiarata statica all'interno di una funzione, l'ambito, il che significa che l'accessibilità della variabile non è influenzata. Quindi, parti del programma al di fuori della funzione non possono accedere al suo valore. Tuttavia, il suo ambito non viene eliminato quando la portata muore.

Per saperne di più sulla goccia e sui distruttori in ruggine, controlla il nostro tutorial su Rust Destructors.

Punti da notare

Di seguito sono riportati alcuni punti importanti da notare quando si utilizzano variabili statiche in ruggine:

Le variabili statiche devono essere sicure. Quindi, il tipo specificato deve implementare il tratto di sincronizzazione. L'impostazione di una variabile come statica con un tipo che non è thread sicuro può portare a condizioni di gara dei dati.

Le variabili statiche possono riferire solo altre variabili statiche per riferimento.

Costanti o statiche

Sebbene le variabili statiche non siano una sostituzione per variabili costanti, Rust consiglia di favorire sempre le costanti a meno che:

  1. È necessario archiviare grandi quantità di dati.
  2. Hai bisogno di mutabilità interna
  3. Hai bisogno di natura a singolo indirizzo delle variabili statiche.

La ruggine crea una variabile statica

Esistono due modi principali per creare una variabile statica in ruggine. Il primo è quello di creare un valore costante con una dichiarazione statica.

Un codice di esempio è come mostrato di seguito:

Valore statico: i32 = 10;

Il secondo metodo per creare un valore statico è quello di creare una stringa letterale con tipo e 'STR statico. L'esempio è come mostrato:

Let Hello: & 'static Str = "Hello";

Tieni presente che il tipo STR in ruggine è un tipo di lettera di stringa definito come & 'static STR.

Poiché i letterali di stringa sono fette di una corda, sono archiviati nel binario finale e quindi in una vita statica.

Poiché i tipi di stringa in ruggine potrebbero non vivere nella vita del programma, non è possibile convertire un tipo di stringa in una stringa statica. Tuttavia, è possibile creare una fetta di stringa che è statica come mostra nell'esempio seguente:

Let String: String = "Hello World".to_owned ();
let str_slice: & str = & string […];

NOTA: Sebbene sia possibile avere un valore statico mutabile, la ruggine non può dimostrare riferimenti pendenti o gare di dati quando si accede a una variabile statica mutabile. La ruggine generalmente scoraggia usando variabili mutabili statiche.

Conclusione

Questo breve articolo tenta di discutere il concetto di variabili statiche nella ruggine. Tieni presente che questa guida non può servire come riferimento alla statica in ruggine. Controlla la documentazione per capire come funziona statico in ruggine.