Bootstrap

[沫忘录]Golang基础类型与语法

[沫忘录]Golang基础类型与语法

一个最基本的golang程序

package main //包名

import "fmt" //引入包名,类似头文件,该包名主要包含一些文件io函数

func main(){
    fmt.Println("Hello World!")
}

语言特性

  • 一条语句后面可省略 " ; "
  • 由于以上特性,多个语句不能写在同一行
  • golang为了代码风格统一,左大括号 “{” 不能缩进到下一行
  • 为了避免不必要的包引用和变量定义增加可执行文件大小,golang里面包引用后必须使用,变量定义后必须使用

变量

赋值

//变量定义及初始
var a = 1

//声明变量
var b int

如果是在函数体内,则可以使用以下方式定义变量
b := 2

变量类型

  • 整型
    int int8 … int64 uint uint8 … uint64 uintptr
    其中 uint8 别名是byte, int32别名是rune
  • 浮点数
    float32, float64
  • 复数
    complex64,complex128

还有bool和string等类型

数组

//固长数组
a := [5]int{1, 2, 3, 4, 5}

//可变长数组(Slice)
a := make([]int, 0)//初始化长度为0的整型数组
a = append(a, 1, 2, 3, 4)//从尾部依次添加1,2, 3, 4
//也可这样定义
a := []int{1, 2, 3, 4}

Map

m := map[string] int{
“a” : 1,
“b” : 2
}
//直接定义
m := make(map[string]int)
m[“a”] = 1

结构

type Point struct{
	x int
    y int
}
//初始化
P := Point{1, 2}

分支

if b := 1; a > 10{
    ......
}

循环

for i := 1; i < 5; i++ {
    ......
}
//只留判断语句可模拟while循环

函数

func myfunc(a int, b int) (int, int){
    .....
    return b, a
}

//函数也可作为函数的参数
func sum(a int, b int, transform func(int) int) int{
    return transform(a) + transform(b)
}

//函数作为参数传递
square := func(x int) int {
    return x * x
}
fmt.println(sum(1, 2, square))
;