本文来自极客学院专栏,欢迎订阅:Go入门进阶实战专栏:其实学Go很简单。
Go语言以其精炼的语法和强大的功能,为开发者提供了构建高效、可维护代码的坚实基础。Go语言中的函数不仅是执行特定任务的代码块,更是实现代码复用和模块化设计的核心构件。通过精心设计的函数,Go语言极大地简化了代码的复用、组织和测试过程。
函数是任何编程语言中不可或缺的重要组成部分。从本质上讲,函数是对一段逻辑的封装,它将特定的功能抽象并命名,使得在需要时可以通过简单的调用实现功能的复现。这种封装不仅使代码更加清晰和简洁,而且提高了代码的可读性和可维护性。
定义下面的代码段介绍了Go语言中函数定义的各种情况,以及延迟函数的使用。
packagemainimport"fmt"//函数的定义funcf1(xint,yint)(retint){returnx+y}//无返回值的函数funcf2(xint,yint){fmt.Println(x+y)}//没有参数也没有返回值的funcf3(){fmt.Println("1111")}//没有参数有返回值的funcf4()int{return4}//返回值可以命名也可以不命名//命名的返回值就相当于在函数中声明一个变量funcf5(xint,yint)(retint){ret=x+y//注意:因为已经在返回值中声明了ret,所以这里用=而不是:= ,避免重复声明问题return//因为已经在函数体中声明了ret,所以在return的时候不需要重复声明}//多个返回值funcf6()(int,int){return1,2}//多个参数简写的方式//当参数的类型一致时,可以将连续的相同参数前面参数的类型省略比如:funcf7(x,y,zint,a,bstring,c,dbool)int{returnx+y+z}//可变长参数//可变长参数必须放在函数参数的最后funcf8(xstring,y...int){fmt.Println(x)fmt.Println(y)}//defer延迟执行funcdeferDemo(){deferfmt.Println("111")//最先defer的语句最后执行deferfmt.Println("222")fmt.Println("333")}//go语言中函数没有默认参数的概念funcmain(){r:=f5(1,2)fmt.