macro_rules! column {
() => { ... };
}
Expand description
扩展到调用它的列号。
对于 line!
和 file!
,这些宏为开发人员提供了有关源中位置的调试信息。
扩展表达式的类型为 u32
,并且基于 1,因此每行的第一列的值为 1,第二列的值为 2,依此类推。
这与常见编译器或常用编辑器的错误消息一致。
返回的列是 not 必然column!
调用本身的行,而是导致 column!
宏调用的第一个宏调用。
Examples
let current_col = column!();
println!("defined on column: {current_col}");
Runcolumn!
计算 Unicode 代码点,而不是字节或字素。作为结果,前两次调用返回相同的值,但第三次调用没有。
let a = ("foobar", column!()).1;
let b = ("人之初性本善", column!()).1;
let c = ("f̅o̅o̅b̅a̅r̅", column!()).1; // 使用组合上划线 (U+0305)
assert_eq!(a, b);
assert_ne!(b, c);
Run