Swift3 奇怪的readLine()和print()行为导致print()延迟,尽管在Swift 3中首先调用了print()

Swift3 奇怪的readLine()和print()行为导致print()延迟,尽管在Swift 3中首先调用了print(),swift3,stdout,readline,Swift3,Stdout,Readline,我有一个奇怪的问题,我似乎无法理解,而且在互联网上似乎根本没有涉及到这个问题(要么就是这样,要么就是我不知道该找什么)。如果这方面还有其他问题,请告诉我 考虑以下代码示例: while true { print("enter some text: ", terminator: ""); if let input = readLine(strippingNewline: true)?.lowercased() { print("received \(input)")

我有一个奇怪的问题,我似乎无法理解,而且在互联网上似乎根本没有涉及到这个问题(要么就是这样,要么就是我不知道该找什么)。如果这方面还有其他问题,请告诉我

考虑以下代码示例:

while true {
    print("enter some text: ", terminator: "");
    if let input = readLine(strippingNewline: true)?.lowercased() {
        print("received \(input)")
    }
}
可以推断,输出应为:

enter some text: blah blah
received blah blah
enter some text: 
等等。但是,以下输出是我收到的:

blah blah
enter some text: received blah blah
在上面的例子中,我需要输入一些文本,然后在“输入一些文本”提示出现之前按return键,这似乎是关闭的,因为提示的
print()
是在
readLine()
之前调用的,但它们的执行顺序是相反的


就我个人而言,我无法理解为什么
readLine()
调用会延迟最初的“输入某物…”
print()
。这种行为是否有原因和/或我可以做些什么来纠正它以获得预期的输出?

堆栈溢出看起来就是这样…@nullqube您可以添加更多详细信息吗?显然,当您输入空行时,删除终止符:“”将修复它。看起来还好吗?这是因为您在终端的Xcode中运行代码,它工作得很好。是否有任何理由删除终止符:“修复了问题?堆栈溢出就是这样的…@nullqube您可以添加更多详细信息吗?显然,当您输入空行时,删除终止符:”会修复它。看起来还好吗?这是因为您在终端的Xcode中运行代码,它工作得很好。是否有任何原因需要删除终止符:“修复此问题?”?