[解決済み】文字列リテラルに対して文字列をマッチングさせる方法は?
2022-03-27 13:59:52
質問
をどのようにマッチングさせるか考えています。
String
をRustで作成しました。
最初はこのようにマッチングさせようとしたのですが、Rustは暗黙のうちに
std::string::String
から
&str
.
fn main() {
let stringthing = String::from("c");
match stringthing {
"a" => println!("0"),
"b" => println!("1"),
"c" => println!("2"),
}
}
これにはエラーがあります。
error[E0308]: mismatched types
--> src/main.rs:4:9
|
4 | "a" => println!("0"),
| ^^^ expected struct `std::string::String`, found reference
|
= note: expected type `std::string::String`
found type `&'static str`
次に、新しい
String
オブジェクトをキャストする関数が見つからなかったからです。
String
を
&str
.
fn main() {
let stringthing = String::from("c");
match stringthing {
String::from("a") => println!("0"),
String::from("b") => println!("1"),
String::from("c") => println!("2"),
}
}
これで3回ほど以下のようなエラーが発生しました。
error[E0164]: `String::from` does not name a tuple variant or a tuple struct
--> src/main.rs:4:9
|
4 | String::from("a") => return 0,
| ^^^^^^^^^^^^^^^^^ not a tuple variant or struct
実際のマッチング方法
String
をRustで作成することはできますか?
どのように解決するのですか?
次のような方法があります。
match &stringthing[..] {
"a" => println!("0"),
"b" => println!("1"),
"c" => println!("2"),
_ => println!("something else!"),
}
また
as_str
メソッドを実装しています(Rust 1.7.0 より)。
match stringthing.as_str() {
"a" => println!("0"),
"b" => println!("1"),
"c" => println!("2"),
_ => println!("something else!"),
}
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み】Objective-CのisEqualToStringのSwiftに相当するものは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】動的構造体参照の引数は、有効なフィールド名で評価する必要がある
-
[解決済み] Go StartsWith(str 文字列)
-
[解決済み] swiftで改行する方法
-
[解決済み] MIPSでの文字列の反復処理と修正
-
[解決済み] c++で文字列をconst char[]に変換する方法
-
[解決済み] VBScriptにはsubstring()関数がありますか?
-
[解決済み】Scala:文字列のイテラブルを結合する
-
[解決済み】文字、コードポイント、グリフ、書記素はどう違うの?
-
[解決済み】Swift Stringで文字のインデックスを検索する
-
[解決済み] Int を、先頭のゼロを揃えて、指定された長さの文字列に変換するにはどうしたらいいですか?