内建变量
- bool
- string
- (u)int[8/16/32/64],uintptr
- byte
- rune go的char类型,长度32位
- float[32/64]
- complex[64/128] 复数类型
变量定义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| var a int var b string
var a, b int = 3, 4
var a, b , = 3, "4", true
a,b = 1, 2
var( aa = 1 bb = "bb" )
|
常量与枚举
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| const filename = "xxx"
const a, b = 1, 3
const ( ... )
func enums() { const( cpp = iota - java python golang javascript ) }
const( b = 1 << (10 * iota) kb mb gb tb pg )
|
条件查询
if
1 2 3 4 5 6 7 8 9 10 11 12 13
| if (xxx != nil) {
} else {
}
if result, err := ioutils.Readfile(xxx);err != nil {
} else { }
|
switch
1 2 3 4 5 6 7 8
| switch op { case "*": result = a case "-": result = 2 default: result = 3 }
|
循环
for
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| sum := 0 for i := 1; i <= 100; i++ { sum += i }
for { }
for ; i != 2; i++ { }
for _, v := range arr { }
for i := 0; i < len(arr); i++ { }
|
函数
函数式编程 可以值是函数嵌套函数
没有默认参数、可选参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| func test(a,b int, c string) int { }
func test(a,b int, c string) (int, int) { }
func test(a,b int, c string) (d, ec int) { }
func test(numbers ...int) int { }
|
指针
- go语言只有值传递,没有引用传递
- 引用传递可以采取指针传递实现
&variable_name
传入指针
var variable_name *type
定义指针
数组
- 数量写在类型前面
...
表示编译器数数量
- 长度不一样算作不同的类型 比如
[5]int [10]int
是不同的类型
1 2 3
| var [5]int var [4][5]int var [...]int{1,2,3}
|
1 2 3 4 5 6 7 8
| for _, v := range arr { }
for i := 0; i < len(arr); i++ { }
|