2017-07-21 91 views
0
var letters: [Character] = ["a", "b", "c", "d"] 
for c in letters { 
    print(c, terminator: "") 
} 

我是一個全新的快速編程。我使用Xcode 9 Beta版本。 當我編譯代碼時,沒有輸出,但是如果我在for循環之外寫了任何東西,立即它將顯示在輸出中。Xcode沒有輸出

回答

1

問題是如果你寫一個沒有換行符的打印語句作爲終止符,它只會寫入一個緩衝區。打印換行符時,緩衝區將被刷新。

要打印一個換行符,只是使用空print()聲明:

var letters: [Character] = ["a", "b", "c", "d"] 
for c in letters { 
    print(c, terminator: "") 
} 
// Print a newline here, so everything gets flushed. 
print() 
+0

有一些機制來檢查或打印 –

+0

您可以通過調用'打印()'函數打印緩衝區的緩衝區。如果你想在不添加換行符的情況下刷新你的輸出,你可以調用'fflush(stdout)',刷新內部緩衝區的內容(但我強烈建議不要這樣做,它可能在Playgrounds中不起作用)。 Swift的'print()'函數使用一個輸出流,默認情況下是'_StdOut'。 '_StdOut'使用緩衝的'fwrite(...)'和'putchar(...)'。通過刷新緩衝區,打印其內容。我不知道有什麼方法可以讀取緩衝區內容,也不應該依賴緩衝區的內容。 – Palle