我收到 Xcode 錯誤
全域函式“zip”要求“String.Element”(又名“Character”)符合“Sequence”
在array[i] = zip(array[i], arrayOfZeros)
func expandedForm(_ num: Int) -> String {
let lenght = String(num).count
var array = Array(String(num))
var i = 0
while array.count > i {
let numberOfZeros = array.count - 1 - i
let arrayOfZeros = Array(repeating: "0", count: numberOfZeros)
let string = array[i]
array[i] = zip(array[i], arrayOfZeros)
i = 1
}
return ""
}
我正在嘗試合并兩個字串陣列,但我認為它們不是同一型別。在這方面需要一些幫助。
uj5u.com熱心網友回復:
func expandedForm(_ num: Int) -> String {
let lenght = String(num).count
var array = Array(String(num))
var i = 0
while array.count > i {
let numberOfZeros = array.count - 1 - i
let arrayOfZeros = Array(repeating: "0", count: numberOfZeros)
let string = array[i]
array[i] = zip(array[i], arrayOfZeros)
i = 1
}
return ""
}
你有一些問題。
var array = Array(String(num)),如果您將游標傳遞到array,它是一個[String.Element],即 a [Character],一個陣列 a Character。
所以let string = array[i],這是誤導,因為array[i]是 a Character,而不是 a String。
zip(_:_:)等待兩個序列(~array),你給作為第一個引數 a Character。
可能的解決方案:
Make array,一個真正的陣列String:
var array = Array(String(num)).map { String($0) }
然后:
array[i] = array[i] arrayOfZeros.joined()
或者創建一個新變數var output,它將是一個陣列String:
var output: [String] = []
并填充它:
output.append(String(array[i] arrayOfZeros.joined())
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/449587.html
