对变量值感到困惑?

时间:2020-02-27 18:44:42

标签: swift

我正在尝试编写一个程序,该程序告诉一个短语是否是回文。这是本教程要我生成的代码:

var text = ["h", "e", "l", "l", "o"]
var reversed = [String]()

var counter = text.count - 1

while counter >= 0 {
   reversed.append(text[counter])
   counter -=1
}

我不知道为什么在用text.count定义计数器变量后必须添加-1。 在while循环中计数器-= 1是否足够?

1 个答案:

答案 0 :(得分:1)

这是因为arrays中的Swift(例如保存您的文本的字符串数组)是zero based

即它们的第一个元素位于位置0,最后一个元素位于位置array.count-1

因此,手动遍历数组时,人们希望在[0]和[array.count-1]之间进行迭代。

通常人们甚至不会考虑这一点,因为您通常不会费心使用手动循环,而会使用fast enumerationfor in

例如

var text = ["h", "e", "l", "l", "o"]
for letter in text.reversed() {
    print(letter)
}