golang学习笔记(十):函数参数
//值传递 形参不能改变实参的值 形参和实参是不同的地址单元
1,数组作为函数参数 返回值
func BubbleSort(arr [10]int) [10]int {
for i := 0; i < len(arr)-1; i++ {
for j := 0; j < len(arr)-1-i; j++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
return arr
}
2,切片名作为函数参数 返回值
func test(s []int) []int{
//如果是函数中使用append进行数据添加时 形参的地址改变就不会在指向实参的地址
s = append(s, 11, 12, 13, 14, 15)
return s
}
3,将map作为函数参数
func demo(m map[int]string) {
m[4] = "刘胡兰"
m[5] = "赖宁"
fmt.Println(m)
//fmt.Printf("%p\n",m)
delete(m, 5)
fmt.Println(m)
}
4,结构体变量作为函数参数
func test2(stu Student) {
stu.name = "野猪佩奇"
fmt.Println(stu)
}
5,指针作为函数参数
func swap(a *int, b *int) {
//&变量 取地址操作 引用运算符
//*指针变量 取值操作 解引用运算符
//temp := *a
//fmt.Printf("temp类型:%T\n", temp)
//*a = *b
//*b = temp
*a, *b = *b, *a
}