以下是一些常见的 Rust 属性的用法:
衍生属性
#[derive] 属性用于自动实现一些 trait(比如 Debug、Clone)的功能。例如:
#[derive(Debug, Clone, Copy)]
struct Point {
x: i32,
y: i32,
}
自定义属性
你也可以为自己的代码添加自定义属性,以用于标记或配置特定的行为。例如:
#[my_custom_attribute]
fn my_function() {
// 函数体
}
编译器工具
属性还可以用于与编译器进行交互,配置编译器行为。例如,使用 #[cfg] 属性可以根据条件编译代码块:
#[cfg(target_os = "windows")]
fn windows_only_function() {
// 只在 Windows 操作系统下编译
}
#[cfg(target_os = "linux")]
fn linux_only_function() {
// 只在 Linux 操作系统下编译
}
条件编译
使用 #[cfg] 属性可以根据条件编译代码块:
#[cfg(feature = "my_feature")]
fn conditional_function() {
// 只在启用 "my_feature" 特性时编译
}
案例:使用 #[test] 属性
在 Rust 中,使用 #[test] 属性标记测试函数。这样,你就可以使用 cargo test 命令运行这些测试:
#[test]
fn test_addition() {
assert_eq!(2 + 2, 4);
}
#[test]
fn test_subtraction() {
assert_eq!(5 - 3, 2);
}
这是 Rust 属性的一些基本用法。属性在 Rust 中广泛用于标记、配置和与编译器交互,为开发者提供了丰富的工具。
转载请注明出处:http://www.zyzy.cn/article/detail/6809/Rust