MST
星途 面试题库

面试题:Rust特征启用与条件编译基础应用

在Rust中,假设你正在编写一个跨平台的库,在Linux平台下需要启用某个特定特征`linux_specific`来实现一些系统调用相关功能,在其他平台不启用。请编写相应的条件编译代码,并说明如何在特征启用时实现一个简单的函数`linux_specific_function`,该函数打印一条`This is a Linux - specific function`的消息。
17.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
#[cfg(target_os = "linux")]
#[cfg(feature = "linux_specific")]
pub fn linux_specific_function() {
    println!("This is a Linux - specific function");
}

#[cfg(not(any(target_os = "linux", feature = "linux_specific")))]
pub fn linux_specific_function() {}

说明

  1. 条件编译:使用cfg属性来实现条件编译。target_os = "linux"用于判断当前是否是Linux平台,feature = "linux_specific"用于判断是否启用了linux_specific特征。
  2. 函数实现:当同时满足是Linux平台且启用了linux_specific特征时,linux_specific_function函数会打印出指定消息。在其他情况下(非Linux平台或者未启用linux_specific特征),linux_specific_function是一个空函数,不执行任何操作。

要启用linux_specific特征,可以在Cargo.toml文件中添加:

[features]
linux_specific = []

然后在构建时使用--features linux_specific参数来启用该特征。