简介
- go的一个思想:一个问题尽量只有一个解决方案是最好的。
- go 中函数是第一等元素。
- studygolang.com/pkgdoc
go build src.go # 编译
go run src.go # 编译并运行,不生成exe可执行文件
gofmt -w src.go # -w 写入源文件,否则会在标准输出/控制台显示格式化后的代码
一些语法
- 严格区分大小写;
- 语句不需要分号;
- 编译器是一行一行编译的,因此一行就写一条语句,多个语句卸载同一行会报错;
- 定时的变量或者 导入的包没有使用到,编译不能通过;
- 全局变量声明后不使用可以编译通过;
- 全局变量不能用
:=
赋值
go 数据类型
-
基本数据类型
- 数值型:2类,整数类型(byte, int, int8, int16, int32, int64; uint, uint8, uint16, uint32, uint64); 浮点类型(float32, float64);
- int/uint: 32位系统,4个字节;64位系统 8字节
- rune: 等价int32,有符号
- byte: 等价unit8,无符号,0~255
- 字符型:没有单独的关键字表示,使用byte来保存单个字符;
- 布尔型: bool
- 字符串: string
- 数值型:2类,整数类型(byte, int, int8, int16, int32, int64; uint, uint8, uint16, uint32, uint64); 浮点类型(float32, float64);
-
复杂数据类型(派生数据类型)
- 函数:go中函数是个类型
- 管道
- 指针
- 结构体
- 接口
- 数组
- 切片
- map
demo code
package main // 声明文件所在的包,每个go文件必须有归属的包; 即使当前没有这个目录,和java不同
import "fmt"
var(
// 字符串使用双引号
global_1 = "123"
global_2 = 123
)
var global_3 = "G3" // 这个全局变量可以编译通过
func main(){ // 这个大括号不能像java那样换行;否则编译不过。是为了同一的代码格式
fmt.Println(global_1)
fmt.Println(global_2)
// 指定变量类型并赋值
var num int = 1
fmt.Println(num)
// 指定类型,不赋值,使用默认值
var num_1 int
fmt.Println(num_1)
// 不指定变量类型,根据值进行类型自动推断
var num_2 = "tom"
fmt.Printf("num_2 type is: %T \n", num_2)
// 省略 var 使用 := 。声明并赋值
num_3 := "str"
fmt.Printf("num_3 type is: %T \n", num_3)
// 声明多个变量
var v1,v2,v3 int
fmt.Println(v1)
fmt.Println(v2)
fmt.Println(v3)
v4,v5 := 4,5
fmt.Println(v4)
fmt.Println(v5)
}