You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust中使用use通配符导入的内容是否都会被包含进二进制文件?

Rust通配符导入与二进制文件内容的关系
  • 使用use some_crate::*这类通配符导入时,不会把所有被导入的内容都塞进最终的二进制文件里。
  • 不管用通配符导入还是精准导入,最终构建的文件只会包含你代码里实际用到的导入内容。

举个例子,use std::io::prelude::*这个导入会把io模块常用的trait(比如Read、Write)都引入当前作用域,但只要你的代码里只用到了Read来读取数据,那Write相关的代码就会被编译器的死代码消除机制完全剔除,不会出现在最终的二进制文件中。

本质上,Rust的use语句只是给当前作用域添加名称别名,它不会触发代码的强制编译。编译器只会追踪你实际调用、使用的符号,只把这些符号及其依赖的必要代码编译进二进制,没用到的部分都会被优化掉。

内容的提问来源于stack exchange,提问作者tasuren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:35:23