优点
-
自带gc。
-
静态编译,编译好后,扔服务器直接运行。
-
简单的思想,没有继承,多态,类等。
-
丰富的库和详细的开发文档。
-
语法层支持并发,和拥有同步并发的channel类型,使并发开发变得非常方便。
-
简洁的语法,提高开发效率,同时提高代码的阅读性和可维护性。
-
超级简单的交叉编译,仅需更改环境变量。
-
Go 语言是谷歌 2009 年首次推出并在 2012 年正式发布的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去10多年间软件开发的难度令人沮丧。Google 对 Go 寄予厚望,其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助开发者处理琐碎但重要的内存管理问题。Go 的速度也非常快,几乎和 C 或 C++ 程序一样快,且能够快速开发应用程序。
Go语言的主要特征:
1.自动立即回收。
2.更丰富的内置类型。
3.函数多返回值。
4.错误处理。
5.匿名函数和闭包。
6.类型和接口。
7.并发编程。
8.反射。
9.语言交互性。
Go语言命名
- Go的函数、变量、常量、自定义类型、包(package)的命名方式遵循以下规则:
- 首字符可以是任意的Unicode字符或者下划线
- 剩余字符可以是Unicode字符、下划线、数字
- 字符长度不限
- Go只有25个关键字
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var
-
Go还有37个保留字
Constants: true false iota nil Types: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error Functions: make len cap new append copy close delete complex real imag panic recover
Go语言声明
有四种主要声明方式:
var(声明变量), const(声明常量), type(声明类型) ,func(声明函数)。
Go的程序是保存在多个.go文件中,文件的第一行就是package XXX声明,用来说明该文件属于哪个包(package),package声明下来就是import声明,再下来是类型,变量,常量,函数的声明。
Go项目构建及编译
一个Go工程中主要包含以下三个目录:
src:源代码文件
pkg:包文件
bin:相关bin文件
详细步骤:
-
建立工程文件夹 goproject
-
在工程文件夹中建立src,pkg,bin文件夹
-
在GOPATH中添加projiect路径 例 e:/goproject
-
如工程中有自己的包examplepackage,那在src文件夹下建立以包名命名的文件夹 例 examplepackage
-
在src文件夹下编写主程序代码代码 goproject.go
-
在examplepackage文件夹中编写 examplepackage.go 和 包测试文件 examplepackage_test.go
-
试包
go build examplepackage
go test examplepackage
go install examplepackage
这时在pkg文件夹中可以发现会有一个相应的操作系统文件夹如windows_386z, 在这个文件夹中会有examplepackage文件夹,在该文件中有examplepackage.a文件 -
主程序
go build goproject.go
成功后会生成goproject.exe文件
至此一个Go工程编辑成功。
编译常见问题及终极解决方案
-
统编译时 go install abc_name时,系统会到GOPATH的src目录中寻找abc_name目录,然后编译其下的go文件;
-
一个目录中所有的go文件的package声明必须相同,所以main方法要单独放一个文件,否则在eclipse和liteide中都会报错;
编译报错如下:(假设test目录中有个main.go 和mymath.go,其中main.go声明package为main,mymath.go声明packag 为test);
$ go install test
can't load package: package test: found packages main (main.go) and test (mymath.go) in /home/wanjm/go/src/test报错说 不能加载package test(这是命令行的参数),因为发现了两个package,分别时main.go 和 mymath.go;
-
于main方法,只能在bin目录下运行 go build path_tomain.go; 可以用-o参数指出输出文件名;
-
以添加参数 go build -gcflags "-N -l" ****,可以更好的便于gdb;详细参见 http://golang.org/doc/gdb
-
db全局变量主一点。 如有全局变量 a;则应写为 p 'main.a';注意但引号不可少;
-
一般新手都会遇到找不到路径或者引入资源路径找不到的问题,请使用GoLang这个IDE,可以避免踩很多的坑
评论前必须登录!
注册