获取Rust代码文件名、行号及位置信息

Rust提供了一组特殊的宏,可以在代码中获取文件名、行号和列号。这些宏分别是file!line!column!。通过在代码中插入这些宏,您可以在编译时获取有关代码位置的关键信息,从而更轻松地追踪问题。

示例代码

这段代码定义了一个名为log的宏,该宏接受一个表达式参数$msg,并在每次调用时打印出当前文件名、行号、列号以及传入的消息;

macro_rules! log {
    ($msg:expr) => {
        println!("{}:{}:{} - {}", file!(), line!(), column!(),
        $msg);
    };
}

fn main() {
    for _ in 0..10{
        log!("this is a log message.");
    }
    log!("done");
}

程序运行结果

learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:10:9 - this is a log message.
learn-rust-app\src\main.rs:12:5 - done

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/how-to-get-line-number-filename-in-rust-code.html

分类: 计算机技术
推荐阅读:
查看Nginx版本信息和编译配置参数 使用命令nginx -v 获取Nginx版本信息;使用命令nginx -V 获取Nginx编译信息;
Python 获取网卡的MAC地址 获取网卡MAC地址可以使用Python标准库中的uuid模块;uuid模块提供了getnode()函数,用于获取机器的MAC地址。这个函数返回一个整数值,表示机器的48位MAC地址,其中高16位可能包含厂商信息。
Rust语言计算斐波那契数列(Fibonacci) 本文将使用Rust语言递归实现斐波那契数列的计算;
Python open()函数 open()函数是Python中用于打开文件的内置函数。它可以打开一个文件,并返回一个文件对象,以便对文件进行读取、写入、追加等操作。
Rust实现线性搜索算法(Linear Search) 本文将使用Rust实现线性搜索算法(Linear Search);
Python compile()函数 在 Python 中,compile() 是一个内置函数,用于将字符串或AST对象编译成字节码或代码对象。编译后的字节码或代码对象可以在多个 Python 解释器中执行,从而避免每次执行时重新编译代码。