के लिए निरंतर अभिव्यक्ति का उपयोग करके सरणी घोषित करना मेरे पास एक सरणी के चारों ओर एक नया प्रकार का रैपर है। मुझे लगता है कि मैं चारों ओर सरणी के आकार को मैन्युअल रूप से पास करने के बजाय size_of
का उपयोग कर सकता हूं, लेकिन संकलक सोचता है कि मैं गलत हूं।अपने आकार
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));
}
मैं हर रात को उपयोग कर रहा हूँ: rustc 0.13.0-रात (7e43f419c 2014-11-15 13:22:24 +0000)
इस कोड के साथ विफल निम्न त्रुटि:
: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
Rust Reference on Array Expressions मुझे लगता है कि यह काम करना चाहिए बनाता है
क्या एक आकार के निर्माण के लिए कोई आरएफसी या गिटहब मुद्दा है जो संकलन समय पर काम करता है? – rraval
@rraval: सामान्य रूप से संकलन-समय फ़ंक्शन मूल्यांकन की इच्छा है, हालांकि यह 1.0 के लिए कुछ नहीं है जो अब के लिए केंद्रित है। जबकि 'size_of' विशेष-आधारित हो सकता है, यह शायद इसके लायक नहीं हो सकता है। –
यहां इसके लिए एक सीमित आरएफसी है, लेकिन यह काफी नंगे है: https://github.com/rust-lang/rfcs/issues/322 – Quartz