2014年准备学习一下go,毕竟是大牛ken tompson参与的项目,了解一下。
买了一本《go语言程序设计》,今天读了第一章,对1.7节的并发方式毕竟感兴趣
特点总结:
1. 大部分情况下无需显示锁
2. goroutine可以有很多
3.channel通道传递数据,代替了共享数据
运行了一下例程polar2cartesian,效果还不错,但是有个问题一直不能解决。
输入终止为ctrl+Z, 但反复测试都不能退出循环,只能用ctrl+C退出了
相关代码:
if runtime.GOOS == "windows" {
prompt = fmt.Sprintf(prompt, "Ctrl+z, Enter")
} else {
prompt = fmt.Sprintf(prompt, "Ctrl+D")
}
意思是windows操作系统就用ctrl+Z
fmt.Printf("Radius and angle: ")
line, err := reader.ReadString('\n')
if err != nil {
break
}
这是退出循环的条件,实践证明不能成功退出
谁知道原因?
另外,go 1.2似乎很稳定,比两年前用的go好多了。呵呵,可继续学习之
有疑问加站长微信联系(非本文作者)