match節に基づいて変数の値を割り当てるために使用されるRustのイディオムがありますか?私はスカラからのRust match文からの割り当て
のようなものを知っていて、あなたがRustで同じことをすることができるかどうか疑問に思っていました。式として一致句を評価し、そこから何かを返す方法はありますか、あるいはそれは単に錆の文ですか?
match節に基づいて変数の値を割り当てるために使用されるRustのイディオムがありますか?私はスカラからのRust match文からの割り当て
のようなものを知っていて、あなたがRustで同じことをすることができるかどうか疑問に思っていました。式として一致句を評価し、そこから何かを返す方法はありますか、あるいはそれは単に錆の文ですか?
Rustでは、ほぼすべてのステートメントも式です。
あなたはこれを行うことができます:
fn main() {
let a = 3;
let b = match a {
x if x % 2 == 1 => false,
_ => true,
};
}
ええ、ありがとう、ちょうどそれを考え出した。 "case"節の最後にカンマを忘れてしまった。私はできるだけ受け入れます。 – midor
あることを確認:
fn main() {
let a = 1;
let b = match a % 2 {
1 => false,
_ => true
};
assert_eq!(b, false);
}
関連錆リファレンスの章:match expressionsを。
ものの、あなたのケースで簡単なif
は十分であろう:
let b = if a % 2 == 1 { false } else { true };
あるいは
let b = a % 2 != 1;
をストレート[錆帳:4.14マッチ]から(HTTPS://doc.rust-lang。 org/beta/book/match.html)(2番目の例)。私はあなたが本を読んで(または少なくともあなたが質問があるときにそれをチェックする)ことをお勧めします。 –
tbh私はこの概念を尊敬しますが、この本はほとんど役に立ちません(私は実際にチェックしましたが、割り当ての例はないパターンマッチングセクションをチェックしました)。この本は検索するのが非常に難しく、キーワード索引が欠けています。最初の句の後にコロンを忘れてしまったので、私はコンパイラから完全に無関係なエラーメッセージが出てきたので尋ねました.Googleは有用な情報を返しませんでした。 – midor