【go语言学习笔记】函数

知识点

go语言的函数定义更像是python和c语言的结合体,并且也有不定参数的传参以及地址传参方式,非常强大。

下面举一些例子来详细说明:

  1. 无参无返回值函数
func MyFunc() {
	fmt.Println("无参返回值")
}
  1. 有参无返回值函数
func MyFunc1(a int, b int) {
	fmt.Println(a + b)
}

// 如果同样类型,可以简写成以下内容
func MyFunc2(a, b int) {
	fmt.Println(a - b)
}

// 不推荐下列写法
func MyFunc3(a, b string, c float64) {
	fmt.Println(a, b, c)
}
  1. 无参有返回值函数
// 有返回值的函数需要通过return中断函数
func myfunc01() int {
	return 666
}

// 给返回值起一个变量名
func myfunc02() (result int) {
	return 666
}

// go语言推荐写法,最常用写法
func myfunc03() (result int) {
	result = 666
	return //等价于return 666
}
  1. 多返回值函数
func myfunc04() (int, int, int) {
	return 1, 2, 3
}

// 给返回值变量起名字
func myfunc05() (a int, b int, c int) { // 可以写成(a, b, c int)
	a, b, c = 1, 2, 3
	return
}
  1. 不定参数函数
func myfunc(tmp ...int) {
	for i := range tmp {
		fmt.Println("data = ", tmp[i])
	}
}

func test(args ...int) {
	myfunc(args...) //传递不定参数
}

func test1(args ...int) {
	// 从第二个元素开始一直传递到末尾, 类似python的切片
	myfunc(args[2:]...)  

	// 从第0个元素一直传递到第一个元素,左闭右开区间
	myfunc(args[:2]...)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值