盒子
盒子
文章目录
  1. Nim 每日早茶
    1. 匿名元组拆包
    2. 命名元组拆包
    3. 元组占位符
    4. 相等元素赋值
    5. 库推荐

Nim语言如何实现元组拆包与多重赋值

Nim 每日早茶

Nim语言如何实现元组拆包与多重赋值
https://tea.nim-cn.com/archives/

在 Nim 语言中,有两种元组: 匿名元组命名元组

匿名元组拆包

注意括号是不可以省略的,省略的话,就会变成多重赋值。

1
2
let (a0, a1, a2) = (1, 2, 4)
echo a0, " ", a1, " ", a2

输出:

1
1 2 4

命名元组拆包

Nim 中,我们可以指定各个元素的名称,除了使用名称访问属性,我们还可以通过与匿名元组类似的方式获取属性值。

1
2
3
4
var b: tuple[name: string, age: int, hobby: string] = ("tom", 26, "唱歌")
echo b
let (b0, b1, b2) = b
echo b0, " ", b1, " ", b2

输出:

1
2
(name: "tom", age: 26, hobby: "唱歌")
tom 26 唱歌

元组占位符

如果我们不需要某个值或者某个属性,我们可以使用 _ 占位符。

1
2
let (_, c1, _) = (1, 2, 4)
echo " ", c1, ""

输出:

1
2

相等元素赋值

Nim 中可以通过下面的方式进行多重赋值。

1
2
3
4
let a3, a4, a5, a6 = 6
echo a3, a4, a5, a6
let a7, a8 = @[1, 2, 3, 5]
echo a7, " ", a8

输出:

1
2
6666
@[1, 2, 3, 5] @[1, 2, 3, 5]

库推荐

nimx 是一个跨平台 Gui 框架。

https://github.com/yglukhov/nimx