一、函数
func function_name( [parameter list] ) [return_types] {
函数体
}
函数定义解析:
- func:函数由 func 开始声明
- function_name:函数名称,函数名和参数列表一起构成了函数签名。
- parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。
- return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。有些功能不需要返回值,这种情况下 return_types 不是必须的。
- 函数体:函数定义的代码集合。
func eval(a,b int,op string) int{
var result int
switch op {
case "+":
result = a + b
case "-":
result = a - b
case "*":
result = a * b
case "/":
result = a / b
default:
panic("unsupported operator:"+op)
}
return result
}
func div(a,b int) (int,int){
return a / b,a % b
}
二、指针
- Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。
- 在指针类型前面加上 * 号(前缀)来获取指针所指向的内容。
var ip *int
var a int = 20
ip = &a
fmt.Printf("%x\n",ip)
//交换函数
func swap(a,b *int){
*b , *a = *a , *b
}
三、数组
-
语法格式如下:
- var variable_name [SIZE] variable_type
//声明数组 var arr1 [5] int //初始化数组 arr2 := [3]int{1,3,9} arr3 := [...]int{2, 4, 6, 8, 10} fmt.Println(arr1,arr2,arr3) //遍历数组,range可以获得数组的下标和具体值 //只获得下标 for i:= range arr3{ fmt.Println(arr3[i]) } //获得下标和具体值 for i ,v := range arr2{ fmt.Println(i,v) } //可以使用——省略变量 for _ ,v := range arr2{ fmt.Println(v) }
使用函数时,是拷贝数据过去,最后不改变原数组中的数据
[10]int 与[20]int 是不同类型