我在https://www.opengl.org/wiki/Multisampling学习Go langue,我修改了这样的小代码,我在quit <- 0
之前添加了一个睡眠(2s),并输出了{{1}的斐波那契索引下面是我的代码:
i
我立刻发现stdout输出0-8,但等待2秒输出第9,然后是&#34;退出&#34;。
我将此代码移动到单个go文件并运行它。首先它输出0-8如上所述,但在我改变总数(从10到9,8或3,无论如何)之后,它会立即直接输出所有斐波纳契数,因为我除外(当然它输出{{ 2秒后1}})!
我在浏览器中运行代码(我使用Chrome)它仍然输出第9个延迟,当我将10改为3时,它立即输出0-2。
所以我很困惑为什么会输出第9个延迟?
更新:我想我知道为什么,因为我的输出窗口太小而无法输出整个结果,但我总是向下滚动所有时间它仍然显示为8。如果我缩放输出窗口,它将立即输出0-9。这是本教程的错误吗?
答案 0 :(得分:0)
我认为这是本教程的错误。如果输出窗口(左下角)太小,它将显示最后一行,因此第9行不会立即显示。
如果我在fmt.Println("foo")
之后添加fmt.Println(i,<-c)
,则不会输出包含foo
字符串的最后一行,但会显示第9个斐波纳契。
我在Chrome中捕获了响应,它可以告诉您如何显示结果,包括输出的时间。所以它必须是吞下最后一行的页面错误。 :d
PS:响应如下:
{
"Errors":"",
"Events":[
{
"Message":"0 0\nfoo\n1 1\nfoo\n2 1\nfoo\n3 2\nfoo\n4 3\nfoo\n5 5\nfoo\n6 8\nfoo\n7 13\nfoo\n8 21\nfoo\n9 34\nfoo\n",
"Kind":"stdout",
"Delay":0
},
{
"Message":"quit\n",
"Kind":"stdout",
"Delay":2000000000
}
]
}