nim-lang - 如何将切片转换为序列?

标签 nim-lang

我想直接从切片指定序列(而不是迭代切片并将每个元素单独添加到序列中)。我尝试了几种不同的方法,但明显的方法似乎不起作用。

var 
    x = newSeq(1..n)
    y: seq[int] = @[1..n]
    z: seq[int] = 1..n

我唯一能做的就是从 future 导入列表推导式

var x: seq[int] = lc[x | (x <- 1..n), int]

我在文档中找不到任何不涉及从 future 导入实验内容或自己重载序列构造函数的方法。

最佳答案

https://nim-lang.org/docs/sequtils.html#toSeq.t,untyped

import sequtils
var x = toSeq 1..n

作为引用,您也可以编写自己的实现来将切片转换为 seq:

proc toSeq2[T](s: Slice[T]): seq[T] =
  result = @[]
  for x in s.a .. s.b:
    result.add x

关于nim-lang - 如何将切片转换为序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29683811/

相关文章:

nim-lang - 如何更改 Nim 编译器输出文件位置和名称

nim-lang - 如何获取值的类型为字符串?

nim-lang - Nim 中类似 Go 的并行性?

slack - Nim Slack 机器人签名验证问题

concurrency - Nim 线程间消息传递 : How to avoid a global TChannel?

nim-lang - 如何从 nim 表获取可修改的值

nim-lang - Nim 中的异步代码(javascript 的 setTimeout 等效项)

nim-lang - 如何在 Nim 中不跳过一行进行打印

compiler-optimization - Nim 编译器优化标志

enumerate - Nim 像 Python 一样枚举函数