
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.6 解包
解包(destructuring或unpacking)可以将元素集中的元素赋值给变量。让我们来看一些例子。
假设我们有一个包含某人信息的元组,包括名称和最喜欢的饮料:

假设我们想把这两个信息放在不同的变量中。我们可以像这样把它们分开:

这非常好,不过我们可以使用解包语法,更优雅地实现它。为了将元组内的两个字符串解包为两个变量,我们需要在赋值语句的左边,使用另一个包含变量名的元组:

我们还可以解包列表。例如,如果我们有一个列表,它包含另一个人的类似信息,如下所示:

那么我们可以在赋值语句的左边,用一个列表来解包名称和最喜欢的饮料:

左边的元组或列表必须与右侧的元组或列表的大小相匹配,但有时候我们并非对所有的元素都感兴趣。在这种情况下,可以在需要忽略的值相应的位置使用下划线,例如:

该代码将1分配给变量a,3分配给变量c,而忽略2。
这是另一种可以帮助我们编写更简洁代码的技巧。