rust - 为什么 `let true = false` 会失败,真的可以吗?

标签 rust pattern-matching keyword

有可能使这项工作吗?本来想看看true能不能重新定义,后来看到true居然是关键字。

是否有可能“修复”模式错误并得到“您无法分配给关键字的错误”?

fn main() {
    let true = false;
}

我得到:

error[E0005]: refutable pattern in local binding: `false` not covered
 --> src/main.rs:2:9
  |
2 |     let true = false;
  |         ^^^^ pattern `false` not covered

Playground

最佳答案

错误信息没有问题。您正在使用 refutable patternlet 绑定(bind)中,let 只允许无可辩驳的模式。

换句话说,当您这样做时:

let variable = value

您没有为变量赋值。您正在创建一个绑定(bind),其中左侧与右侧的内容相匹配。它应该是一个无可辩驳的模式,因为匹配必须始终成功。

关于rust - 为什么 `let true = false` 会失败,真的可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52263319/

相关文章:

rust - 类型OnProduce = extern “C” fn不安全

rust - 线程上对象的借用和所有权

macos - 如何将 Rust 应用程序从 macOS x86 交叉编译到 macOS Silicon?

rust - 为什么Rust的read_to_end不能将文件读入缓冲区?

python - 如何通过匹配字符串在Python中提取父html标签

javascript - 使用 Jquery 获取字符串的正则表达式模式

scala - 在scala中匹配多个案例类

search - 如何使用 TortoiseSvn 在我的代码中找到更改了一行的修订版?

c# - 为什么 c# 中没有 "is not"关键字?

java - 'synchronized' 是什么意思?