【发布时间】:2019-07-29 09:42:46
【问题描述】:
我正在尝试将 char 转换为 int,在 C 中它可以工作,但在 Swift 中我遇到了一些问题。在C里就不一样了,用ascii没问题。
这个函数是我的 atoi 函数的一部分。
我尝试使用 binaryInt 和 UnicodeScalar,但没有成功
func scanNumber(_ strArray: [Character], _ index: Int, _ flag: Int) -> Int {
var resalt = 0
while ((strArray[index] >= "0") && (strArray[index] <= "9")) {
// flag mean plus or minus sign in strArray, if flag = 2 it's like a ["-", "1", "2", "3"]
if flag != 2 {
resalt *= 10
resalt = resalt + Int(strArray[index]) //error
} else {
resalt *= 10
resalt = resalt - Int(strArray[index]) //error
}
}
return resalt
}
Int(strArray[index]) 返回:
Initializer 'init(_:)' 要求 'Character' 符合 'BinaryInteger'
【问题讨论】:
-
您可以使用asciiValue 属性:
Int(strArray[index].asciiValue ?? 0)
标签: swift char int converters