我怎样才能像经典元组那样解压缩元组结构?

时间:2017-08-10 23:22:50

标签: struct rust tuples tuple-struct

我可以解压这样的经典元组:

let pair = (1, true);
let (one, two) = pair;

如果我有一个元组结构,例如struct Matrix(f32, f32, f32, f32),我尝试解压缩它,我收到一个关于“意外类型”的错误:

struct Matrix(f32, f32, f32, f32);
let mat = Matrix(1.1, 1.2, 2.1, 2.2);
let (one, two, three, four) = mat;

导致此错误:

error[E0308]: mismatched types
  --> src/main.rs:47:9
   |
47 |     let (one, two, three, four) = mat;
   |
   = note: expected type `Matrix`
              found type `(_, _, _, _)`

如何解压缩元组结构?我是否需要将其显式转换为元组类型?或者我需要对其进行硬编码吗?

1 个答案:

答案 0 :(得分:8)

这很简单:只需添加类型名称!

import boto3

client = boto3.client('ec2')
response = client.modify_volume(VolumeId='vol-xxxxxxxx',VolumeType='io1',Iops=100)

这可以按预期工作。

它与普通结构完全相同。在这里,您可以绑定到字段名称或自定义名称(如struct Matrix(f32, f32, f32, f32); let mat = Matrix(1.1, 1.2, 2.1, 2.2); let Matrix(one, two, three, four) = mat; // ^^^^^^ ):

height