我不确定为什么foo在for循环中没有修改阴影变量的值:
fn main() {
let foo: i32 = 5;
for _x in 0..5 {
let foo = foo + 1;
}
println!("Value of foo: {}", foo);
//This prints Value of foo: 5
let bar: i32 = 5;
let bar = bar + 1;
println!("Value of bar: {}", bar);
//This prints Value of foo: 6
}
Run Code Online (Sandbox Code Playgroud)
我浏览了变量和可变性部分以及一些堆栈溢出问题,但我找不到foo未修改值的原因。
我在loop.
for和loop有阴影变量的一些限制?为什么不允许?mut能够变量吗?我正在使用 Rust 1.42.0
我有一个列表列表,我想在它们之间插入一个项目时将其展平。我的原始清单采用以下形式:
l = [["a","b"],["c"],["d"]]
Run Code Online (Sandbox Code Playgroud)
我想要的是,展平列表并用字符分隔它们
n = ["a","b",".","c",".","d"]
Run Code Online (Sandbox Code Playgroud)
正如许多SO 答案中提到的那样,应该可以使用列表理解来扁平化列表:
flat_list = [item for sublist in l for item in sublist]
Run Code Online (Sandbox Code Playgroud)
但是是否可以使用我选择的字符/字符串来展平列表?
可以通过附加.到除最后一个列表之外的每个列表来完成。但是有没有更优雅的东西.join?