在Swift中,我希望有一个连续的用户输入循环,就像python解释器的工作方式,提示,你输入一行,显示行的结果,然后提示用户再次。到目前为止,这是我的代码:
import Foundation
func input() -> String {
var keyboard = NSFileHandle.fileHandleWithStandardInput()
var inputData = keyboard.availableData
return NSString(data: inputData, encoding: NSUTF8StringEncoding) as! String
}
while true {
println("Obl>")
var theInput = input()
println("\(theInput)")
}
但是,这导致了这样的方案:
Obl>
hello world
hello world
Obl>
yo
yo
我希望它看起来像这样:
Obl> hello world
hello world
Obl> hello
hello
如何实现这一目标?
答案 0 :(得分:1)
你还在使用Swift 1吗? Swift 2中已弃用println
。
斯威夫特1:
print("Obl> ")
斯威夫特2:
print("Obl>", terminator: " ")
而不是你的input()
函数,你可以使用readLine
,这是Swift中的标准函数:
let theInput = readLine()
答案 1 :(得分:0)
/*
For Swift 3
Note I do not claim credit for this, but it does work to prompt for and retrieve user inputs
*/
import Foundation
print("Please enter your name:")
if let name = readLine() {
print("Hello, \(name)!")
} else {
print("Why are you being so coy?")
}
print("TTFN!")