1 个不稳定版本
0.1.0 | 2019 年 9 月 19 日 |
---|
#272 在 无标准库
8KB
63 行
eh
将值转换为 bool
,类似于 C,埃哈?
Eh
大约遵循 C 到 0
或 C++ 到 bool
的隐式转换规则,但 Rust 需要显式转换。整数 0
、浮点数 0.0
和空指针是 false
,所有其他值都是 true
。
作为一个针对 Rust 的特定扩展,这也实现了 Option<T>
和 Result<T, E>
。当 ?
操作符会展开一个 T
值时,它返回 true
,而当 ?
会引发提前返回时,它返回 false
。
排除项
Eh
不实现其他语言的布尔转换,特别是当它们不是普遍适用的时候。例如
- JavaScript 将 NaN 转换为
false
,与 C 和 C++ (以及eh
) 不同。 - JavaScript 将空的
[]
和{}
转换为true
,但在 Python 中它们是false
。 - 许多语言将空字符串转换为
false
,将非空字符串转换为true
,但在 Perl 和 PHP 中"0"
仍然是false
。
关于
名字是对加拿大“埃哈”(eh)的戏谑,将陈述句变成了一个问题。
许可协议
本项目受以下任一许可协议的许可:
- Apache许可证,版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您提交给 eh
以供包含的贡献,如Apache-2.0许可证中定义的,应按上述方式双重许可,不附加任何额外条款或条件。