Macro core::column

1.0.0 · source ·
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}");
Run

column! 计算 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