如果我有一个序列
let my_seq = @[("a", "hello"), ("c", "world"), ("b", "to")]
我该如何排序才能返回:
let my_seq = @[("a", "hello"), ("b", "to")] ("c", "world")
尝试用谷歌搜索,但基本上没有 nim 的资源
使用标准库中的
sort
过程。通过提供比较函数来自定义它,该函数定义如何将项目相互比较,并返回一个指示其顺序的整数。
例如,按元组的第一个元素(位于位置
0
)进行比较:
import std/algorithm
var my_seq = @[("a", "hello"), ("c", "world"), ("b", "to")]
proc myCmp(x, y: (string, string)): int = cmp(x[0], y[0])
my_seq.sort(myCmp)
echo(my_seq)
@[("a", "hello"), ("b", "to"), ("c", "world")]
请注意,我已将
let
更改为 var
以使序列可变。