Vec を印刷するにはどうすればいいですか? 質問する

Vec を印刷するにはどうすればいいですか? 質問する

次のコードを試しました:

fn main() {
    let v2 = vec![1; 10];
    println!("{}", v2);
}

しかし、コンパイラは次のようにエラーを出力します:

error[E0277]: `std::vec::Vec<{integer}>` doesn't implement `std::fmt::Display`
 --> src/main.rs:3:20
  |
3 |     println!("{}", v2);
  |                    ^^ `std::vec::Vec<{integer}>` cannot be formatted with the default formatter
  |
  = help: the trait `std::fmt::Display` is not implemented for `std::vec::Vec<{integer}>`
  = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
  = note: required by `std::fmt::Display::fmt`

この特性を実装した人はいますかVec<T>?

ベストアンサー1

let v2 = vec![1; 10];
println!("{:?}", v2);

{}は、ユーザーに直接表示できる文字列やその他の値用です。ベクトルをユーザーに表示する方法は 1 つだけではありません。

フォーマッタ{:?}を使用してデバッグすると、次のようになります。

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

Displayは、メソッドを提供する特性であり{}Debug{:?}

おすすめ記事