swift 调用初始值设定项时没有完全匹配项

368yc8dk  于 2022-12-02  发布在  Swift
关注(0)|答案(1)|浏览(156)

我试图将一个int转换为二进制,但我得到了错误“调用初始化程序中没有完全匹配”,我做了binary = binart + String(dig)。
我能在网上找到的所有例子都不是这样的,强制解包String(dig)不起作用

func decToBin(decimal:Int) -> String{
        var r = [] as Array
        var tempDec = decimal
        var binary = ""
       
        while tempDec >= 1{
            r.append(tempDec % 2)
            tempDec /= 2
            print(tempDec)
        }
        print(r)
        r.reverse()
        
        for dig in r {
            binary = binary + String(dig)
        }
        
        print(binary)
        return String(binary)
    }
1zmg4dgp

1zmg4dgp1#

您的r变量是一个隐式的Array<Any>类型。这意味着dig是一个Any类型,而String没有它的初始化器。
请尝试为r提供更显式的类型,如下所示:

var r: [Int] = []

相关问题