Go gc
时下流行的语言大都是运行在虚拟机上,如:Java 和 Scala 使用的 JVM,C# 和 VB.NET 使用的 .NET CLR。而go同样通过虚拟机,采用标记-清除回收器管理内存,尽管虚拟机的性能已经有了很大的提升,但任何使用 JIT 编译器和脚本语言解释器的编程语言(Ruby、Python、Perl 和 JavaScript)在 C 和 C++ 的绝对优势下甚至都无法在性能上望其项背
函数
func functionName(parameter_list) (return_value_list) { … }
parameter_list 的形式为 (param1 type1, param2 type2, …)
return_value_list 的形式为 (ret1 type1, ret2 type2, …)
只有当某个函数需要被外部包调用的时候才使用大写字母开头,并遵循 Pascal 命名法;类内部调用均首字母小写
特殊函数
- 每个源文件都只能包含一个 init 函数。初始化总是以单线程执行,并且按照包的依赖关系顺序执行。
- 如果当前包是 main 包,则定义 main 函数。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。包名都应该使用小写字母
- 变参函数
func F1(s ...string) {
F2(s...) F3(s)
}
- defer 类似java finally 作用,它一般用于释放某些已分配的资源
func