배열을 포함하는 구조체를 선언하고 초기화되지 않은 인스턴스를 만드는 것이 좋습니다.녹에서 배열을 포함하는 구조체를 초기화하는 방법은 무엇입니까?
use std::default::Default;
use std::num;
#[deriving(Default)]
struct Histogram {
sum: u32,
bins: [u32, ..256],
}
컴파일러 오류 : 여기
는 구조체이다src/lib.rs:17:5: 17:23 error: the trait `core::default::Default` is not implemented for the type `[u32, ..256]`
src/lib.rs:17 bins: [u32, ..256],
^~~~~~~~~~~~~~~~~~
note: in expansion of #[deriving]
src/lib.rs:14:1: 14:21 note: expansion site
src/lib.rs:17:5: 17:23 note: the trait `core::default::Default` must be implemented because it is required by `core::default::Default::default`
src/lib.rs:17 bins: [u32, ..256],
^~~~~~~~~~~~~~~~~~
note: in expansion of #[deriving]
src/lib.rs:14:1: 14:21 note: expansion site
error: aborting due to previous error
나는 UINT8 배열에 대해 누락 된 이니셜을 추가하려고하면 :
impl Default for [u32,..256] {
fn default() -> [u32,..255]{
[0u8,..256]
}
}
내가 얻을 :
src/lib.rs:20:1: 24:2 error: cannot provide an extension implementation where both trait and type are not defined in this crate [E0117]
src/lib.rs:20 impl Default for [u32,..256] {
src/lib.rs:21 fn default() -> [u32,..255]{
src/lib.rs:22 [0u8,..256]
src/lib.rs:23 }
src/lib.rs:24 }
나는 잘못된 것을하고 있습니까? 아니면 1.0에 이르는 숫자 형에 대한 표준 라이브러리에서 휘젓니까? 이 비 형 다형성이 없기 때문에 같은 Default
이 크기의 소수에서만 구현 가능한대로
$ rustc --version
rustc 0.13.0-nightly
표준 라이브러리에서는 0이 사용되지 않음으로 표시되어 있기 때문에 기본값에 도달했습니다. ~ Zero 특성이 없으면 고정 크기 배열이 벡터 벡터 추가에 사용될 가능성이 더 높고 제로 벡터가 더하기에 대한 식별 벡터이며 기본으로 더 자연스러운 선택이라고 주장합니다. . 그러나 이것은 우리가 여기에서하고있는 심각한 자전거 타기입니다 : –