Go 语言特点
- 高性能、高并发:Go语言是一种编译型语言,在高性能和高并发上着重进行优化,不需要利用第三方库就具有较高的性能以及并发能力。
- Go的语法十分简单,相比于C/C++,它更加高级,学习起来较容易上手。
- Go语言具有丰富的标准库,相对于Java,许多库我们需要采用第三方的,这时候可能会出现一些版本不兼容、以及存在bug等问题。而Go不会,它拥有丰富的标准库,仅仅利用标准库就可以完成丰富的开发工作。
- Go具有完善的工具链。比如测试工具、包管理、性能优化等。
- Go具有静态链接。所有的文件都是静态链接的,占用空间小,部署方便。
- 快速编译。Go的编译速度很快,可以做到实时编译,不像C/C++一样,大项目编译一次需要耗费大量的实践。
- 跨平台。
- 具有垃圾回收机制,不需要考虑变量内存的管理。
Go 语言用途
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
Go 语言基础语法
1.Go 语言变量
Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
声明变量的一般形式是使用 var 关键字:
var identifier type
可以一次声明多个变量:
var identifier1, identifier2 type
实例
package main
import "fmt"
func main() {
var a string = "I_LIKE_STUDY"
fmt.Println(a)
var b, c int = 1, 2
fmt.Println(b, c)
}
运行结果
变量声明
第一种,指定变量类型,如果没有初始化,则变量默认为零值。
零值就是变量没有做初始化时系统默认设置的值。
- 数值类型(包括complex64/128)为 0
- 布尔类型为 false
- 字符串为 "" (空字符串)
- 以下几种类型为 nil:
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
package main
import "fmt"
func main() {
var i int
var f float64
var b bool
var s string
fmt.Printf("%v %v %v %q\n", i, f, b, s)
}
输出结果是:
第二种,根据值自行判定变量类型。
package main
import "fmt"
func main() {
var d = true
fmt.Println(d)
}
第三种,如果变量已经使用 var 声明过了,再使用 := 声明变量,就产生编译错误,格式: 如下面这样就会产生
var intVal int
intVal :=1 // 这时候会产生编译错误,因为 intVal 已经声明,不需要重新声明
直接使用下面的语句即可:
intVal :=1
多变量声明
//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断
vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误
// 这种因式分解关键字的写法一般用于声明全局变量
var (
vname1 v_type1
vname2 v_type2
)
go语言的变量和python语法有一些相似,但不完全相同, 变量的声明包含了以上三种方法,以上三种方法均可。