合并字符串数组 - 调用下标时没有完全匹配
Merge Array of String - No exact matches in call to subscript
我收到 Xcode 错误
Global function 'zip' requires that 'String.Element' (aka 'Character') conform to '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 ""
}
我正在尝试合并两个字符串数组,但我认为它们不是同一类型。在这方面需要一些帮助。
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]
,即[Character]
,一个数组Character
。
所以 let string = array[i]
,这是误导,因为 array[i]
是 Character
,而不是 String
。
zip(_:_:)
等待两个序列 (~array),您将 Character
.
作为第一个参数
可能的解决方案:
制作array
,一个真正的String
数组:
var array = Array(String(num)).map { String([=11=]) }
然后:
array[i] = array[i] + arrayOfZeros.joined()
或者创建一个新变量 var output
,它将是 String
:
的数组
var output: [String] = []
并填充它:
output.append(String(array[i] + arrayOfZeros.joined())
我收到 Xcode 错误
Global function 'zip' requires that 'String.Element' (aka 'Character') conform to '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 ""
}
我正在尝试合并两个字符串数组,但我认为它们不是同一类型。在这方面需要一些帮助。
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]
,即[Character]
,一个数组Character
。
所以 let string = array[i]
,这是误导,因为 array[i]
是 Character
,而不是 String
。
zip(_:_:)
等待两个序列 (~array),您将 Character
.
可能的解决方案:
制作array
,一个真正的String
数组:
var array = Array(String(num)).map { String([=11=]) }
然后:
array[i] = array[i] + arrayOfZeros.joined()
或者创建一个新变量 var output
,它将是 String
:
var output: [String] = []
并填充它:
output.append(String(array[i] + arrayOfZeros.joined())