rust有一些有别于其他语言的地方,本文作为一个集子,收集一些微小的,在ruts中应该是常识的,但是在其他语言中却很怪异的语法
let coll = vec![2,3,1,1,1];
for i in coll{
println!("coll:{}",coll[i]);
}
这段代码coll[i]是各coll[2],coll[3]...但是会报错,因为for in迭代器已经借用了coll
vec!声明出来的应该是一个结构体
![Uploading Paste_Image_056474.png . . .]
rust的闭包对它所在环境的变量构成一个引用,(如果它用了这个变量的话),尽管没有以&的形式去引用,实际上它是构成了一个隐含的不可变引用
rust想要执行的闭包都是可变变量声明的
move闭包会使用移动语义而不是借用
move语义会把栈上的数据进行移动 如果栈里的数据含有指针(外部数据),那么指针会整个被move走,而不是共享一份,即便是你只是读取(应该使用引用)