Google 开发
编译型
并发型
具有垃圾回收功能
Linux/Mac OSX/Windows
语法接近 C
For 循环和 if 判断没括号
支持垃圾回收
并行模型以东尼霍尔的 CSP 为基础
与 C++ 相比
Go 不包括:异常处理、继承、泛型、断言、虚函数等
增加 slice 型、并发、管道、垃圾回收、接口(interface)等
不同于 Java
Go 内嵌关联数组,称哈希表(hashes)或字典(dictionaries)
Hello World:
package main
import "fmt"
func main() {
fmt.Printf("Hello, 世界\n")
}
github
https://github.com/golang/go
说说您使用Go语言的体会,它有哪些优缺点?
陈辉:最大的优点是易于维护,代码写完之后几个月再去看完全没生疏感,仿佛在 Go 中实现一个功能只有这么一种写法。
而且还有 gofmt 这个格式化工具,让团队中所有人的代码风格都是一样的。
Go 是一种不会让团队其他小伙伴看代码时皱眉头的语言,没有什么比这更重要了。
其次 Go 有 C 的优势,但没有 C++ 的弱点。
首先是强类型语言,任何严肃的软件项目都不应该选择使用弱类型语言。
然后 Go 的 interface 能满足 90% 以上的 OOP 需求,但又没有 C++ 的种种陷阱。最后,执行速度足够快。
然后,Go 有很好的代码管理、build 和 profiling 功能。
profiling 的能力强大,加上 build 体系替代了一个好的 IDE 的最主要的功能。
最后,goroutines 提供了天然的并发编程支持,这也是我最喜欢使用的功能之一。
当然它也不是没有缺点,在我眼里 Go 的缺点:对 virtual function 支持不是很好(或者不存在?),无法通过继承实现代码复用。
另外,pointer 的使用有时候让人困惑。
陈辉的开源项目
install
go 假定安装在 /usr/local/go,如果安装在非标准位置,需要设置 GOROOT
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
test install
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
# 运行,用 go tool
go run hello.go
有疑问加站长微信联系(非本文作者)