我试图将一个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)
}
1条答案
按热度按时间1zmg4dgp1#
您的
r
变量是一个隐式的Array<Any>
类型。这意味着dig
是一个Any类型,而String没有它的初始化器。请尝试为
r
提供更显式的类型,如下所示: