【发布时间】:2017-03-27 00:44:20
【问题描述】:
我对 Rust for 循环的工作方式感到困惑。考虑以下几点:
#![feature(core_intrinsics)]
fn print_type_of<T>(_: T) {
println!("{}", unsafe { std::intrinsics::type_name::<T>() });
}
fn main() {
let nums = vec![1, 2, 3];
for num in &nums { print_type_of(num); }
for num in nums { print_type_of(num); }
}
它输出以下内容:
&i32
&i32
&i32
i32
i32
i32
将向量传入for 与对向量的引用是什么意思?为什么,当你传入一个引用时,你会得到一个对项目的引用,而当你传入一个实际的向量时,你会得到实际的项目?
【问题讨论】:
-
FWIW,other ways of figuring out the type of a value 不需要夜间编译器。