Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
1.写一个简单的hello.go
package main
import "fmt"
func main(){
//输出hello world
fmt.Println("hello,world!")
}
同java语法相比go显得非常简洁,源程序默认为UTF-8编码,区分大小写,语句结尾的分号可以省略。
- package main用来定义程序的包名,程序入口函数main() 必须在main包中,Go通过包名来管理命名空间。
- improt 用来导入包,同java的import作用一样。
- func main() 是用来定义程序入口函数,规定一个go程序下只能存在一个程序入口函数。
- fmt.Println 用来调用fmt包中的Println函数,实现命令行界面数据格式化输出,等同于fmt.Print("hello world",\n)。
- 单行注释 用// 多行注释用/* *
执行程序
//检查go 环境
$ go version
go version go1.14.4 windows/amd64
// 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
$ go env -w GO111MODULE=on
//设置代理
$ go env -w GOPROXY=https://goproxy.cn,direct
//编译
$ go build hello.go
//执行编译后的文件
$ ./hello
hello,world!
2. 写go程序前的一些基本规则
- 变量:只能以字母或下划线_开头
- 内置基本类型: byte、int(有符号- +)、int8、int16、int32、int64、uint(无符号)、uint8、uint32、uint64、 uintprt(无符号整型,存放指针)、float32、float64、complex64、complex128(复数)、String、error、bool
- 内置函数:make、new、len、cap、append、copy、delete、panic、recover、close、complex、real、image、Print Println
- 常量值标识符:true 、false、iota 连续的枚举类型声明、nil 引用型变量空的默认值
- 空白标识符:_(下划线)用来声明一个匿名变量,该变量在赋值表达式的左端,通常被用作占位
- go的关键字: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