swift toInt() 中的用户输入返回 nil
User input in swift toInt() returning nil
我正在尝试创建一个简单的用户输入,但我在 swift 中找到的唯一功能就是这个
func input() -> String {
var keyboard = NSFileHandle.fileHandleWithStandardInput()
var inputData = keyboard.availableData
return NSString(data: inputData, encoding:NSUTF8StringEncoding) as String!
}
然后我尝试将 input() 转换为 Int 以进行数学运算(我使用 1 作为输入)
var inputToInt = input().toInt()!
在这一点上我只得到零我不知道该怎么做。
您转换为 Int 失败,因为字符串包含换行符。您可以使用它来清理它:
let s = NSString(data: inputData, encoding:NSUTF8StringEncoding) as String!
if s.hasSuffix("\n") {
return s.substringToIndex(x.endIndex.predecessor())
} else {
return s
}
Swift 2.0 有一个名为 readLine()
的函数 - 使用它比自己动手要好得多。
我正在尝试创建一个简单的用户输入,但我在 swift 中找到的唯一功能就是这个
func input() -> String {
var keyboard = NSFileHandle.fileHandleWithStandardInput()
var inputData = keyboard.availableData
return NSString(data: inputData, encoding:NSUTF8StringEncoding) as String!
}
然后我尝试将 input() 转换为 Int 以进行数学运算(我使用 1 作为输入)
var inputToInt = input().toInt()!
在这一点上我只得到零我不知道该怎么做。
您转换为 Int 失败,因为字符串包含换行符。您可以使用它来清理它:
let s = NSString(data: inputData, encoding:NSUTF8StringEncoding) as String!
if s.hasSuffix("\n") {
return s.substringToIndex(x.endIndex.predecessor())
} else {
return s
}
Swift 2.0 有一个名为 readLine()
的函数 - 使用它比自己动手要好得多。