例如,在 Elixir 的case 语句中,以下代码是有效的,并且将匹配 10 到 1:
x = 1
case 10 do
^x -> "Won't match"
_ -> "Will match"
end
Run Code Online (Sandbox Code Playgroud)
然而,在 Rust 中,^ 不是此用例的有效运算符。它只是给出一个错误,显示类似“预期模式,找到 ^”之类的内容。我尝试这样做:
let x = 1;
match 10 {
x => "Won't match",
_ => "Will match",
}
Run Code Online (Sandbox Code Playgroud)
但它将 10 绑定到 x 并返回“Won't match”(相当于“x @ _”)。有没有一种方法可以动态包含 x,以便无论 x 是什么,它都会与其值匹配?(注意:我意识到我可以只使用 if 语句,但我很好奇 match 语句是否提供了解决方案)