面试题答案
一键面试在Rust中,可使用cfg
属性进行条件编译。cfg
属性有多种形式,对于根据目标平台编译不同代码片段,常用的是cfg(target_os = "平台名")
。例如:
#[cfg(target_os = "windows")]
fn os_specific_function() {
println!("This is Windows specific code.");
}
#[cfg(target_os = "linux")]
fn os_specific_function() {
println!("This is Linux specific code.");
}
fn main() {
os_specific_function();
}
在上述示例中:
- 定义了两个同名函数
os_specific_function
,但使用#[cfg(target_os = "平台名")]
属性分别针对Windows和Linux平台。 - 在
main
函数中调用os_specific_function
,Rust编译器会根据当前编译的目标平台,选择对应的函数进行编译和链接。如果在Windows平台编译,会使用#[cfg(target_os = "windows")]
标注的函数;如果在Linux平台编译,则会使用#[cfg(target_os = "linux")]
标注的函数。