Go的函数

1、函数的返回值

package main

import "fmt"

func Result(num1 int, num2 int) int {
	return num1 + num2
}

func Result2(num1 int, num2 int) (sum int) {
	sum = num1 + num2
	return sum
}

func Result3() (num1 int, num2 int) {
	num1 = 10
	num2 = 20
	return num1, num2
}

func main() {
	println("Result == ", Result(1, 2))
	println("Result2 == ", Result2(1, 2))
	var s1 int
	var s2 int
	s1, s2 = Result3()
	fmt.Printf("s1=%d,s2=%d", s1, s2)
}

输出结果:

Result ==  3 
Result2 ==  3
s1=10,s2=20  

2、匿名函数

package main

import "fmt"

type FuncType func(int, int)

func main() {

	a := 10
	b := 20

	//第一种
	var f FuncType
	f = func(a int, b int) {
		fmt.Println(a + b)
	}
	f(a, b)

	//第二种
	f2 := func(a int, b int) int {
		return a + b
	}
	v := f2(10, 20)
	fmt.Println(v)

	//第三种
	f3 := func() int {
		return a + b
	}
	v2 := f3()
	fmt.Println(v2)

}

输出结果:

30
30
30

3、函数类型

package main

import "fmt"

func demo1(a int, b int) {
	fmt.Println(a + b)
}

func demo2(s1 int, s2 int) {
	fmt.Println(s1 + s2)
}

//定义函数类型 为已存在的数据类型起别名
type FUNCDEMO func(int, int)

func main() {
	//demo1(10, 20)
	//函数的名字表示一个地址 函数在代码区的地址
	fmt.Println(demo1)

	//f是func (int,int)函数类型定义的变量
	//var f func(int, int)
	var f FUNCDEMO
	//函数类型定义的变量结束函数的地址
	f = demo1
	fmt.Println(f)
	//通过f调用函数
	f(10, 20)

	f = demo2
	f(1, 2)

	fmt.Printf("%T", f)
}

输出结果:

0xb894e0
0xb894e0     
30           
3            
main.FUNCDEMO

4、不定参函数

package main

import "fmt"

//...不定参 在函数调用时可以传递不定量(0-n)的参数
//不定参使用数据格式为切片
func sum(arr ...int) {
	sum := 0
	//i -> index 下标 v -> value 值
	//_匿名变量  如果数据的值不需要接收  可以通过匿名变量来接收数据
	for _, v := range arr {
		sum += v
	}
	fmt.Println("求和:", sum)
}
func main() {
	sum(1, 2, 3, 4)
	//fmt.Println 就是一个不定参的格式
}

输出结果:

求和: 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值