在表达式中思考 | 腐蚀 Rust 咨询

主要观点:Rust 语言中表达式的重要性常被低估,拥抱表达式能让代码更自然,“一切皆表达式”是有用的思维模型,表达式对语言的易用性影响深远。
关键信息:

  • 表达式与语句的区别:表达式产生值,语句不产生值,Rust 中多数东西是表达式,如字面量、变量、函数调用等,Go 中if是语句不是表达式,而 Rust 中if是表达式,可用于三元表达式等。
  • Rust 与其他语言的表达式对比:Rust 从 ML 家族语言继承了表达式,在 Go、C++、Java、TypeScript 中不常见,Rust 的表达式结合模式匹配更强大,如match也是表达式。
  • 表达式的一些特性break是表达式可从循环返回值,dbg!()返回内部表达式的值。
  • 实际应用中的表达式重构:通过去除不必要的unwrapmut和显式返回语句等操作,可改善代码,如对Config结构体的配置文件路径处理代码的重构,但要注意不要过度使用表达式以免影响可读性。
    重要细节:
  • 在处理复杂控制流时,可结合matchif表达式,如根据年份返回鸭子颜色的代码。
  • 去除unwrap时可通过ok_or_else等方式处理可能的错误,去除mut可使代码更清晰,去除显式返回语句可利用块中最后表达式隐式返回的特性。
  • 要注意在使用表达式时保持代码的可读性,避免过度使用组合器而影响代码的可理解性。
阅读 27
0 条评论