go 函数

一、语法

声明语法:func 函数名 (参数列表) [(返回值列表)] {}

二、特点

2.1不支持重载(可以编写多个同名函数,只要它们拥有不同的形参与/或者不同的返回值)

2.2函数可以赋值给变量

2.3多返回值

2.4匿名函数

三、传递方式:

3.1值传递

   基本的数据类型是值传递

3.2地址传递(引用传递)

  map、slice、chan、指针、interface默认以引用的方式传递

四、返回值命名

package main

import "fmt"


func main(){
	ab,bc,cd := mingmin(3,4)
	fmt.Println(ab,bc,cd)
	ab,bc,cd = ismingmin(3,4)
	fmt.Println(ab,bc,cd)
}

func mingmin(x1, x2 int)(x3 ,x4 ,x5 int ){
	x3 = x1 + x2
	x4 = x1 * x2
	x5 = x1 - x2
	return
}

func ismingmin(x1, x2 int)(x3,x4,x5 int){
	return x1 * x2,x1+x2,x1-x2
}

五、可变参数(重点,难点):

  ...代表函数可变

package main

import "fmt"

func main() {
	x := min(1, 2, 3, 0)
	fmt.Printf("The minimum is:%d
", x)
	slice := []int{7, 9, 3, 5, 10}
	x = min(slice...)
	fmt.Printf("The minimum in the slice is: %d", x)
}

func min(s ...int) int {
	if len(s) == 0 {
		return 0
	}
	min := s[0]
	for _, v := range s {
		if v < min {
			min = v
		}
	}
	return min
}
//输出

The minimum is:0
The minimum in the slice is: 3

 

六、defef和

原文地址:https://www.cnblogs.com/liubiaos/p/9363562.html