func allStrings(inputArray: [String]) -> [String] {
var a = inputArray
var b : [String] = []
var c = a.count
for i in stride(from: 1, to: c, by: 1) {
if a[i].lengthOfBytes(using: String.Encoding.utf8) == b[0].lengthOfBytes(using: String.Encoding.utf8) {
b.append(a[i])
}
if a[i].lengthOfBytes(using: String.Encoding.utf8) > b[0].lengthOfBytes(using: String.Encoding.utf8) {
var b = [String]()
b.append(a[i])
}
}
return b
}
我不明白我的代码有什么问题,当我运行它时,我在控制台中出现此错误。谁知道什么是错的?
致命错误:索引超出范围
答案 0 :(得分:1)
错误是您尝试访问具有0个元素的b
// the array b is empty, so b[0] gives you the error
if a[i].lengthOfBytes(using: String.Encoding.utf8) == b[0].lengthOfBytes(using: String.Encoding.utf8) {
b.append(a[i])
}
if a[i].lengthOfBytes(using: String.Encoding.utf8) > b[0].lengthOfBytes(using: String.Encoding.utf8) {
var b = [String]()
b.append(a[i])
}
答案 1 :(得分:0)
您的数组b
为空,并且您试图在循环中的第一个if
条件中访问它的第0个索引,这实际上并不存在。