函数

func funcName(input1 type1, input2 type2) (output1 type1, output2 type2) {    
	//这里是处理逻辑代码    
	//返回多个值    
	return value1, value2
 }

如下例子,交换函数,go语言中不需要中间量

package main
import "fmt"
func swap(a int , b int )(int ,int){      //这里后面一个括号表示返回值的类型
	return b, a
}
func main(){
	a := 1
	b := 2
	a,b = swap(a,b)
	fmt.Printf("%d %d",a , b)
}

Golang可以返回多个值,如一些错误信息

传值和传指针

传值

func add(x int) (int){
	x = x + 1
    return x
}

传指针

package main
import (
	"fmt"
)
func swap(a, b int) (int, int) {
	return b, a
}
func add(a *int) *int {
	*a = *a + 1
	return a
}
func main() {
	a := 1
	add(&a)
	fmt.Printf("%d", a)
}

输出结果:

2
进程 已完成,退出代码为 0