在学习 Rust 的过程中,我看到了人们导入库的多种方式,例如std::io::Result
, 例如:
use std::io::Result as IOResult;
and
pub type IOResult<T> = std::io::Result<T>;
然而,我见过最多的一个,文档似乎建议的是导入所有std::io
然后在代码中引用 Result ,例如io::Result
, 像这样:
use std::io;
fn main() -> io::Result<()> {}
这对我很有吸引力,因为它看起来更直观。但是,我不确定 Rust 如何在幕后处理导入。我担心通过使用所有 std:io,我导入的内容会超出我的需要,并且可能会降低我的代码效率、增大尺寸、增加编译时间等。Rust 是否会为您优化此代码?所有这些语句在 Rust 中都是等价的还是最后一种方法效率不高?
Rust's use
不像C/++的#include
.
在 C/++ 中,当你#include
有些东西,你实际上指示编译器来编译它。否则可能无法编译。
在铁锈中,use
只是一个方便的简写。我们可以完全避免它 - 并且始终使用完全限定的名称(fn main() -> std::io::Result<()>
)。它不会导致编译器编译任何其他内容,除了use
语句本身 - 这应该给程序增加很少的开销。
全球进口 (use foo::*
), are somewhat更昂贵,因为名称解析必须看起来更困难,但它只会影响编译时间一点点(如此之小,你永远不用担心它),并且根本不会影响运行时性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)