[沫忘录]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))