Hello 各位小伙伴你们好,我是小栈君,假期一眨眼就过去了。不知道你们玩的是否开心呢?java
上次咱们讲到了关于Go语言的流程控制,小栈君也但愿小伙伴跟着小栈君一步一个脚印的敲一下代码,相互进步。本期咱们要分享的Go语言系列之函数。编程
1、什么是函数?编程语言
函数是指一段在一块儿的、能够作某一件事儿的程序。也叫作子程序、(OOP中)方法。函数
一个较大的程序通常应分为若干个程序块,每个模块用来实现一个特定的功能。全部的高级语言中都有子程序这个概念,用子程序实现模块的功能。大数据
在C语言中,子程序的做用是由一个主函数和若干个函数构成。由主函数调用其余函数,其余函数也能够互相调用。同一个函数能够被一个或多个函数调用任意屡次。人工智能
在程序设计中,常将一些经常使用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减小重复编写程序段的工做量设计
2、函数之函数定义code
因此综上所述咱们能够知道函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。blog
因此函数的通用格式以下:教程
函数定义说明:
func:函数由关键字 func 开始声明
funcName:函数名称,根据约定,函数名首字母小写即为private,大写即为public ,注意以前小栈君提醒过各位,在go语言中是区分大小写的。因此这里的add是仅本类中使用。
参数列表:函数能够有0个或多个参数,参数格式为:变量名 类型,若是有多个参数经过逗号分隔,不支持默认参数
返回类型:
① 上面返回值声明了两个变量名d和e、f、err(命名返回参数),这个不是必须,能够只有类型没有变量名
② 若是只有一个返回值且不声明返回值变量,那么你能够省略,包括返回值的括号
③ 若是没有返回值,那么就直接省略最后的返回信息
④ 若是有返回值, 那么必须在函数的内部添加return语句
3、函数之自定义函数
在全部的编程中咱们都避免不了自定义函数也称之为方法。以此来确保咱们业务的顺利进行,自定义函数的好处就是能够复用,避免代码臃肿,逻辑混乱,提升代码的阅读性。
因此在go语言的自定义函数中咱们能够分为如下几个种类,无参无返回值、有参无返回值、无参有返回值、有参有返回值这几种。
无参无返回值
func Test() { //无参无返回值函数定义 fmt.Println("hello i am itCarry") } func main() { Test() //无参无返回值函数调用 }
有参无返回值
func Test01(a int, b int) { //方式1 fmt.Printf("a = %d, b = %d\n", a, b) } func Test02(a, b int) { //方式2, v1, v2都是int类型 fmt.Printf("a = %d, b = %d\n", a, b) } func main() { Test01(10, 20) //函数调用 Test02(11, 22) //函数调用 }
不定参数列表
所谓的不定参数列表就是指传参的个数不肯定,有多是一个或多个,因此为了知足这点咱们须要将传参设定为不定参数,和其余编程语言同样,咱们这里用三个点表示(即...),记住要用英文的哦。
知识点:形如...type格式的类型只能做为函数的参数类型存在,而且必须是最后一个参数
func Test(args ...int) {
for _, n := range args { //遍历参数列表
fmt.Println(n)
}
}
func main() {
//函数调用,可传0到多个参数
Test()
Test(1)
Test(1, 2, 3, 4)
}
4、函数之不定参数传递
// 定义函数 一 func MyFunc01(args ...int) { fmt.Println("MyFunc01") for _, n := range args { //遍历参数列表 fmt.Println(n) } } // 定义函数 二 func MyFunc02(args ...int) { fmt.Println("MyFunc02") for _, n := range args { //遍历参数列表 fmt.Println(n) } } // 定义函数 三 func Test(args ...int) { MyFunc01(args...) //按原样传递, Test()的参数原封不动传递给MyFunc01 MyFunc02(args[1:]...) //Test()参数列表中,第1个参数及之后的参数传递给MyFunc02 // PS: 这里运用了一个以后的知识点 就是关于Go语言的切片 } // 调用函数 三 func main() { Test(1, 2, 3) //函数调用 }
因此咱们也是能够看到函数中能够调用函数,构成新的函数。因此咱们只要妥善处理好函数之间的关系咱们就能够构建出高效率、高质量、高可用的代码啦。
好啦,今天的分享就到这里了,对于这一方面还须要各位小伙伴下来后好好琢磨一下。
▼
往期精彩回顾
▼
Go语言入门教程(一)
Go语言入门教程(二)
Go语言入门教程(三)
Go语言系列教程(四)
Go语言系列教程(五)
Go语言系列教程(六)
这里天天会分享包含java,go,Python,大数据,人工智能的相关干货,咱们一块儿提升,一块儿进步。我是小栈君,咱们明天再见,拜了个拜。