var input = [readLine() ?? ""]
如果我刚输入,输入中有[""]
如果我什么都不输入,我想将输入内容设为空列表。
我该怎么办?
这是因为我希望输入为空时输入的计数为零。
答案 0 :(得分:0)
您可以使用IF语句检查输入是否为空字符串,如果是,则将输入设置为空数组。也许有更好的方法可以做到这一点,但我认为这会起作用。
if input == [""] {
input = []
}
我希望这会有所帮助。
答案 1 :(得分:0)
只需过滤出空值:
input = input.filter { !$0.isEmpty }
甚至:
let input = [readLine()]
.compactMap { $0 } // remove nil
.filter { !$0.isEmpty } // remove empty strings
答案 2 :(得分:0)
另一种方法是定义您自己的函数,该函数读取行或返回空数组:
private func myReadLine() -> [String] {
let line = readLine()
if line == [""] {
return []
} else {
return line
}
}
然后在呼叫站点可以写:
var input = myReadLine()
将逻辑与调用代码分开,更易于阅读。如果以后要修改输入处理条件,它还具有易于更改的更多优势。