一. 认识Go语言
go 语言(Golang)是 Google 在 2007 年开发的一种开源编程语言,于 2009 年 11 月开源,2012 年发布 go 稳定版。go是一门非常年轻的语言,它的主要目标是“兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”。
二. Go的优势
- 做高并发有巨大的优势;
- 开发简单,开发效率堪比python;
- 运行效率高,很适合作中央服务器的系统编程语言;
- 是项目转型的首选语言,很多公司在用go重构代码;
- 提供了海量并行的支持,很适合处理游戏相关数据。
三. Go适合作什么
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
四. Hello World By Go
第一个 Go 程序 hello.go:
package main
import "fmt"
func main() {
/* 我的第一个Go程序 */
fmt.Println("Hello World!")
}
上述 Go 代码的组成部分分析:
-
package main 定义包名。Go 语言规定必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
-
import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
-
func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
-
/*...*/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释均已以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
-
fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n,等价于 fmt.Print("hello, world\n") 。
-
当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,那么使用这种形式的标识符的对象就可以被外部包的代码所使用,这被称为导出;标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的;这被称为 Go 语言的可见性规则。
要执行 Go 语言代码可以使用 go run 命令:
还可以使用 go build 命令来生成二进制文件:
五. Go语言基础语法
5.1 行分隔符
在 Go 程序中,一行代表一个语句结束。将多个语句写在同一行,则必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法:
a := "123";b := "456"
fmt.Println(a + b)
5.2 标识符
标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个数字、字母、下划线组成的序列,其中数字不能作为开头。
5.3 关键字
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 语言还有 36 个预定义标识符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
5.4 Go语言的空格
Go 语言中变量的声明必须使用空格隔开,如:
package main
import "fmt"
func main() {
var age int8
// 语句中适当使用空格能让程序更易阅读。
age = 22
fmt.Println("My age is " + string(age))
}
备注:GoLand IDEA中使用快捷键“Ctrl + alt + L”可以格式化代码,自动添加空格。