Nim 中进行反向迭代的主要方法有哪些?

问题描述 投票:0回答:1

我正在学习Python。最近了解了Nim,也开始研究它。我喜欢 python+pascal 语法和 C 的速度。不幸的是,关于 Nim 的教育信息和参考书比关于 Python 的要少得多。我不太明白如何在 Nim 中正确执行反向迭代。

在 Python 中,这很容易。例如,对于“for”循环,var[::-1] 方法可以轻松工作。但在 Nim 中,情况似乎并非如此。像 var[^1..0] 这样的东西只会给我一个错误。我能够使用 len() 和“ind”变量进行反向迭代,该变量在每个循环中都会变得更小。

这是一个代码示例。

proc solution*(str: string): string =
  var str_2: string
  var ind: int = len(str)

  for i in str:
    ind.inc(-1)
    str_2.add(str[ind])

  return str_2

const a: string = "Hello world!"
echo(solution(a))

这是工作。但这不是一个Python式的解决方案。一辆不必要的自行车。一种好的方式是,应该有用于反向迭代的内置工具。 Nim专家,逆向迭代的主要方法有哪些?

对不起我的英语。我在在线翻译的帮助下写作。

我尝试使用像 var[^1..0] 这样的反向迭代。它只是给出一个错误。我还尝试使用“倒计时”功能,但这不是它所需要的。我想了解 Nim 中逆向迭代的主要和正确方法。

iteration nim-lang reverse-iterator
1个回答
0
投票

您可以使用

countdown
倒计时:

const a: string = "Hello world!"

var b: string
for r in countdown(a.len - 1, 0): b.add a[r]
echo b
!dlrow olleH
© www.soinside.com 2019 - 2024. All rights reserved.