合并字符串数组 - 调用下标时没有完全匹配

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())