Weird Expressions in Rust
a year ago
- #Type System
- #Rust
- #Unconventional Patterns
- Rust的类型系统允许一些特殊表达式,在`weird-expr.rs`测试文件中进行了演示
- `never`类型(`!`)可以强制转换为任何其他类型,使得像`return true`这样的表达式可以赋值给布尔类型
- 示例包括在函数参数中用`return`代替`()`,以及返回`while`循环
- Rust的弱关键字如`union`允许在某些上下文中进行创造性的命名
- 范围语法(`..`, `..=`)可以多种方式组合使用,且都实现了`Debug`
- 赋值表达式可以与空元组(`()`)链式组合,展示了Rust的灵活性
- Unicode字符可用于标识符命名,从而绕过关键字限制
- `Deref`特性通过类似智能指针的行为实现递归函数调用
- 匹配守卫可以包含嵌套的`if`语句,模式也可以通过`|`进行链式组合
- `matches!`宏和通配符模式允许实现复杂(尽管非常规)的逻辑