5个版本
0.2.3 | 2022年12月19日 |
---|---|
0.2.2 | 2020年6月16日 |
0.2.1 | 2019年12月26日 |
0.1.4 | 2017年3月10日 |
0.1.2 |
|
#5 in #constructs
250 每月下载
在 3 个crate中使用
10KB
77 行
1 << iota
宏 iota!
构建一组相关常量。
[dependencies]
iota = "0.2"
use iota::iota;
iota! {
const A: u8 = 1 << iota;
, B
, C
, D
}
fn main() {
assert_eq!(A, 1);
assert_eq!(B, 2);
assert_eq!(C, 4);
assert_eq!(D, 8);
}
在 iota!
块中,变量 iota
是一个未类型化的整数常量,其值从0开始,并在块中声明的每个常量中递增1。
use iota::iota;
iota! {
const A: u8 = 1 << iota;
, B
const C: i32 = -1; // iota is not used but still incremented
pub const D: u8 = iota * 2;
, E
, F
}
// `iota` begins again from 0 in this block
iota! {
const G: usize = 1 << (iota + 10);
, H
}
fn main() {
assert_eq!(A, 1 << 0);
assert_eq!(B, 1 << 1);
assert_eq!(C, -1);
assert_eq!(D, 3 * 2);
assert_eq!(E, 4 * 2);
assert_eq!(F, 5 * 2);
assert_eq!(G, 1 << (0 + 10));
assert_eq!(H, 1 << (1 + 10));
}
许可证
根据您的选择,在以下两者中许可:[a href="https://github.com/dtolnay/iota/blob/46c7d2876f85d2f006ed25287eff6047c624bff6/LICENSE-APACHE" rel="ugc noopener">Apache License, Version 2.0MIT许可证。除非您明确表示,否则您提交给本crate的任何有意贡献,根据Apache-2.0许可证定义,应如上所述双重许可,而无需任何附加条款或条件。