2016-06-27 4 views
8

posso dichiarare più costanti in questo modo:Come si dichiarano più variabili mutabili allo stesso tempo?

let (a, b, c) = (1, 0.0, 3); 

Ma perché non posso fare questo con le variabili mutabili?

let mut (a, b, c) = (1, 0.0, 3); getta un errore di compilazione:

error: expected identifier, found `(` 
--> <anon>:2:13 
2 |>  let mut (a, b, c) = (1, 0.0, 3); 
    |>   ^

risposta

17

La sintassi corretta è

let (mut a, mut b, mut c) = (1, 0.0, 3); 

Mutabilità è una proprietà del legame, e a, b e c sono tutti diversi attacchi, ogni limite a un elemento specifico della tupla dopo che il modello è stato abbinato. Quindi possono essere mutuati individualmente.

Se si voleva indicare il tipo, si potrebbe fare anche questo:

let (mut a, mut b, mut c): (u8, f32, i32) = (1, 0.0, 3); 

Per costanti numeriche, è possibile utilizzare anche il modulo suffisso:

let (mut a, mut b, mut c) = (1u8, 0.0f32, 3i32); 

Naturalmente, non c'è motivo per fare questo per il codice di esempio; è molto più semplice avere solo 3 dichiarazioni separate.

declare multiple constants

Queste non sono costanti, sono solo variabili immutabili. A const è un concetto diverso.

+0

Silly me, ho smesso di provarlo, grazie! – KDN