#operator #ternary #syntax #cleaner #iff #c-like #exported

macro terny

一个简单、类似C的,用于简洁语法的三元运算符

2个不稳定版本

0.2.0 2023年4月29日
0.1.0 2023年4月28日

#8 in #c-like

每月 23 次下载
用于 heapswap

无许可协议

5KB
51

Github.com/KaitlynEthylia/terny Crates.io/crates/terny Unlicense Docs.rs/terny

这是一个简单的Rust三元运算符宏。该iff!宏是此crate唯一导出的项,它简单接受三个表达式,由?:分隔,并将它们展开为if-else语句。

用法


iff!( condition
 ? expressionA
 : expressionB );

展开为

if condition {
    expressionA
} else {
    expressionB
}

它也可以用于赋值

let value = iff!(condition
 ? expressionA
 : expressionB );

它也可以内联使用

let value = iff!(condition ? exressionA : expressionB);

它也可以嵌套,尽管代码到了这一点开始看起来不那么整洁

let value = iff!(conditionA ? iff!(conditionB ? expressionA : expressionB) : expressionC);

目前,由于无法检查空白字符(据我所知),无法在?运算符内使用,这应该会在跟踪问题54725稳定后可更改。

无运行时依赖