1
我试图做这样的事情,但它无法编译上inspect
的封闭参数:如何指定闭包参数的类型?
fn main() {
vec!(1, 2, 3, 4)
.windows(2)
.inspect(|&&a[]| println!("{} {}", a[0], a[1]))
.count();
}
我试着动片的名称a
左右,但无法找到甜蜜点编译器的理解。
我试图做这样的事情,但它无法编译上inspect
的封闭参数:如何指定闭包参数的类型?
fn main() {
vec!(1, 2, 3, 4)
.windows(2)
.inspect(|&&a[]| println!("{} {}", a[0], a[1]))
.count();
}
我试着动片的名称a
左右,但无法找到甜蜜点编译器的理解。
直接的答案是使用一个冒号,就像在其他地方你定义的参数类型:
fn main() {
vec!(1, 2, 3, 4)
.windows(2)
.inspect(|a: &&[u8]| println!("{} {}", a[0], a[1]))
.count();
}
正如马修M.指出,没有理由在这里所有指定类型类型推论将处理它:
fn main() {
vec!(1, 2, 3, 4)
.windows(2)
.inspect(|a| println!("{} {}", a[0], a[1]))
.count();
}
为了完整起见,你也可以指定关闭的返回类型,虽然这样做需要封盖本体括号。再次,这是很少需要的:
fn main() {
vec!(1, 2, 3, 4)
.windows(2)
.map(|a: &[u8]| -> bool { a[0] % 2 == 0 })
.inspect(|a| println!("{}", a))
.count();
}
“inspect(| a | ...)'有什么问题吗? –
谢谢,它的工作!这很简单,我真的太复杂了。 – user7357536