Go 执行顺序问题

sucanber 发布于 2018/06/27 08:31
阅读 368
收藏 1
Go

有如下代码片段

package main

import (
	"fmt"
	"errors"
)

func main() {

	println("===========================")
	r,_:= div(6,3)
	fmt.Println(r)
}

func div(x, y int) (int, error) {
	defer println("dispose...")
	if y == 0 {
		return 0, errors.New("division by zero")
	}
	return x / y, nil
}

输出结果为:

问题:

1. 这里没有任何并发操作,为何输出不是先 ‘======’, 然后在输出2 ?

2. 为什么输出结果有的是白色,有的是红色(golang,默认配置)?

 

加载中
1
vikon
vikon

println把结果输出到了stderr  ,而fmt.Println输出到的是stdout.

另外,在新版本的go里面输出是顺序的。我用1.9测试的。

sucanber
sucanber
就是你说的原因
0
b
bin432
没有啊 我的怎么是正常的
sucanber
sucanber
那说明你的不正常 哈哈
返回顶部
顶部