##包
###包的导入方法1:1
2
3
4import (
"fmt"
"math"
)
###包的导入方法2:
1 | import "fmt" |
作为 Pytonista, 更喜欢第 2 种方式 更加简洁.
##包的变量导出
Go 语言通过命名来确定该变量是否是可以导出到外部供别的包所使用.可以被导出的变量通过将变量名的首字母大写来标志确定.
##函数
###一个函数可以收 0 到任意多个参数. 接收的参数类型在参数名之后声明:1
2
3func add(x int, y int) int {
return x+y
}
如果一个函数接受的所有参数是同一个类型的时候, 那么可以不需要每一个参数都标明类型, 只需要在最后一个参数上标明类型就可以.1
2
3func add(x, y int){ #当多个参数是同一类型时, 可以省略只声明一次.
return x+y
}
###一个函数可以返回多个值1
2
3func swap(x, y int) int, int{
return y, x
}
###go也可以对返回变量命名1
2
3
4func split(sum int) (x, y int){
x = sum * 4 / 9
y = sum - x
}
##变量
###变量声明
go 通过 var 关键字来声明变量, 和函数参数声明一致, 变量类型在变量名之后声明:1
2var i int
var c, python, java bool #三个值都为bool类型
###变量初始化
变量可以在声明的时候立刻初始化:1
2var i, j int = 1, 2
var c, python, java = true, false, "no!"
###短变量声明
短变量声明是一个特殊的使用方法, 有以下特点:
- 只能在函数内部使用
- 不需要var关键字和类型
- 类型通过赋值时隐式声明
1
2
3
4
5func main(){
var i, j int = 1, 2
k := 3
c, python, java = true, false, "No!"
}
###变量类型1
2
3
4
5
6
7
8
9
10
11
12
13
14
15bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // alias for uint8
rune // alias for int32
// represents a Unicode code point
float32 float64
complex64 complex128
###常量
常量只能使用const关键字生成1
const Pi = 3.14