我想不出怎么修。我只想了解它是如何工作的,应该替换什么。
我已经尝试删除characters.,但它仍然不起作用。

import Foundation
var shrinking = String("hello")
repeat {
    print(shrinking)
    shrinking = String(shrinking.characters.dropLast())
}
while shrinking.characters.count > 0

我期望程序输出:
你好
地狱
赫尔

H
但根本不起作用。

最佳答案

如果删除characters我建议您创建一个新的游乐场文件,您的代码应该按原样工作。btw您可以简单地使用RangeReplaceableCollectionmutating methodpopLast并在字符串不为空时迭代,以避免多次调用Collection Count属性:

var shrinking = "hello"
repeat {
    print(shrinking)
    shrinking.popLast()
} while !shrinking.isEmpty

这将打印
你好
地狱
赫尔

H
或者使用removeLast方法,但它要求字符串不为空,因此在关闭之前需要检查字符串是否为空:
var shrinking = "hello"

while !shrinking.isEmpty {
    print(shrinking)
    shrinking.removeLast()
}

08-07 03:35