Rust代码可以在没有标准库的情况下编译吗?

问题描述 投票:0回答:1

我目前正在学习Rust。我主要使用The Rust Programming Language书和and this nice reference,它们将Rust功能/语法与C ++等效项相关联。

我很难理解核心语言在哪里停止,标准库在哪里开始。我遇到了很多运算符和/或特征,它们似乎与编译器有特殊关系。例如,Rust有一个名为traitDeref(据我所知像是一个接口),让我们使用*运算符取消实现它的类型:

fn main() {
    let x = 5;
    let y = Box::new(x);

    assert_eq!(5, x);
    assert_eq!(5, *y);
}

另一个示例是?运算符,它似乎取决于ResultOption类型。

使用这些运算符的代码可以在没有标准库的情况下进行编译吗?如果不是,那么Rust语言的哪些部分取决于标准库?没有它甚至可以编译any Rust代码吗?

rust
1个回答
0
投票

[不使用std时,您依赖core,它是core库的子集,该库始终(?)可用。这就是所谓的std环境,通常用于某些类型的“嵌入式”编程。您可以在Rust嵌入式书中找到有关no_std的更多信息,包括有关no_std编程的no_std的一些指导。

© www.soinside.com 2019 - 2024. All rights reserved.