【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]...)
}
发布了128 篇原创文章 · 获赞 20 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/u011544909/article/details/94980384
今日推荐