内建变量
- 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++ {      }
 
  | 
 
       
      