18
、この作品:なぜprintln!長さが33未満の配列に対してのみ動作しますか?錆で
fn main() {
let a = [0; 32];
println!("{:?}", a);
}
これません:
fn main() {
let a = [0; 33];
println!("{:?}", a);
}
コンパイルエラー:
error[E0277]: the trait bound `[{integer}; 33]: std::fmt::Debug` is not satisfied
--> src/main.rs:3:22
|
3 | println!("{:?}", a);
| ^the trait `std::fmt::Debug` is not implemented for `[{integer}; 33]`
|
= note: `[{integer}; 33]` cannot be formatted using `:?`; if it is defined in your crate, add `#[derive(Debug)]` or manually implement it
= note: required by `std::fmt::Debug::fmt`
を私はstd::fmt::Debug
機能がどうにかまでのタイプを検出することを前提とし長さは32要素ですが、検出が落ちます。それともなぜ機能しないのですか?
[マクロ実装へのリンク](https://github.com/rust-lang/rust/blob/b30d8969e86fa2c9dd3b8e2e28ddda2202331f0f/src/libcore/array.rs#L112) - 参考になるかもしれません。 – soon