我正在学习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 中逆向迭代的主要和正确方法。
您可以使用
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