Vec<String>
をコードで再利用できるいくつかの設定で初期化しようとしています。静的const Vecを作成する<String>
私はconst left: Vec<String> = vec![...
を使用していますが、これは動作しません:
error[E0308]: mismatched types
--> names-generator.rs:2:27
|
2 | const left: Vec<String> = vec![
| ^expected slice, found array of 93 elements
|
= note: expected type `Box<[std::string::String]>`
= note: found type `Box<[&str; 93]>`
= note: this error originates in a macro outside of the current crate
このような何かを行うための推奨方法は何ですか?
更新: これは重複としてどのようにマークされていますかわかりません。 2つの関連する質問は無関係です。
文字列リテラルの型は '& 'static str'であり、' String'ではありません。 'String'はヒープ上の文字列です。 – glebm
これらは無関係ではありません。実際、彼らは強く関係しています。 'Vec' *または*' String'を作る**唯一の方法**はそれぞれがヒープ割り当てを必要とするため、実行時です。 'Vec'や' String'のようなランタイム値の単一のインスタンスを持つ唯一の方法は、 'InitOnce'や' lazy_static! 'のような何らかのメカニズムによるものです。 – Shepmaster
答えは私のために働いており、私はそれらのどれも使用していません。 – simao