Deklarieren eines Arrays mit einem konstanten Ausdruck für seine Größe
Ich habe einen neuen Wrapper um ein Array. Ich nahm an, dass ich @ verwenden könnsize_of
anstatt die Größe des Arrays manuell zu übergeben, aber der Compiler denkt, ich liege falsch.
use std::mem::{size_of, size_of_val};
#[repr(C, packed)]
struct BluetoothAddress([u8, ..6]);
fn main() {
const SIZE: uint = size_of::<BluetoothAddress>();
let bytes = [0u8, ..SIZE];
println!("{} bytes", size_of_val(&bytes));
}
Ich benutze die nächtliche: rustc 0.13.0-nightly (7e43f419c 2014-11-15 13:22:24 +0000)
Dieser Code schlägt mit folgendem Fehler fehl:
broken.rs:9:25: 9:29 error: expected constant integer for repeat count, found variable
broken.rs:9 let bytes = [0u8, ..SIZE];
^~~~
error: aborting due to previous error
DasRust-Referenz für Array-Ausdrücke lässt mich denken, dass dies funktionieren sollte:
In dem[expr ',' ".." expr]
form, der Ausdruck nach dem".."
muss ein konstanter Ausdruck sein, der zur Kompilierungszeit ausgewertet werden kann, z. B. ein Literal oder ein statisches Element.