Geo*_*lin 4 struct tuples rust
我有以下结构:
struct Pixel{x:f64, y:f64, dx:f64, dy:f64}
Run Code Online (Sandbox Code Playgroud)
我把这个结构作为函数的参数。我想减少打字并解压它:
fn foo(pixel:Pixel){
let (x, y, dx, dy) = pixel;
}
Run Code Online (Sandbox Code Playgroud)
这段代码无法编译。是否有任何语法糖可以避免无休止的pixel.x
,pixel.dx
等?我想要一些简单的方法来将结构值“提取”(别名)到我的函数中。我想避免冗长的let x = pixel.x; let dx = pixel.dx
等等。
有没有一个简洁的方法来做到这一点?
这里建议仔细阅读《Rust 编程语言》第 18 章。可以使用模式匹配来解构数组、枚举、结构和元组。
let Pixel { x, y, dx, dy } = pixel;
Run Code Online (Sandbox Code Playgroud)
这甚至可以用在函数的形参中。
fn foo(Pixel { x, y, dx, dy }: Pixel) {
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1822 次 |
最近记录: |