函数是一组一起执行任务的语句。每Go程序具有至少一个函数,它一般是main(),以及所有的最琐碎程序可以定义附加函数。
你可以将代码放到独立的功能。如何划分代码之间的不同功能,但逻辑上的划分通常是让每个函数执行特定的任务。
函数声明告诉编译器有关的函数的名称,返回类型和参数。一个函数定义提供了函数的实际主体。
Go语言标准库提供了大量的内置函数,在程序可以调用。例如,函数len()需要不同类型的参数和返回值的类型的长度。例如,如果一个字符串传递给它,它会返回字符串的长度以字节为单位,如果一个数组传递给它,它就会返回数组的长度为它所拥有元素的个数。
函数称为具有各种名字等的方法或子例程或程序等。
定义一个函数:
在Go编程语言的函数定义的一般形式如下:
func function_name( [parameter list] ) [return_types] { body of the function }
Function Body: 函数体包含了定义函数操作语句的集合。
例子:
下面是一个函数的源代码称为max()。这个函数有两个参数num1与num2并返回两者之间的最大值:
/* function returning the max between two numbers */ func max(num1, num2 int) int { /* local variable declaration */ result intif (num1 > num2) { result = num1 } else { result = num2 } return result }
当程序调用函数,程序控制被转移到所调用的函数。调用函数定义执行任务时,被执行的return语句或达到其功能结束的右括号,则返回程序控制返回到主程序。
要调用一个函数,只需要通过必要的参数以及函数的名称,如果函数返回一个值,那么可以存储返回值。例如:
package mainimport "fmt"
func main() { /* local variable definition */ var a int = 100 var b int = 200 var ret int
/* calling a function to get max value */ ret = max(a, b)
fmt.Printf( "Max value is : %d\n", ret ) }
/* function returning the max between two numbers */ func max(num1, num2 int) int { /* local variable declaration */ var result int
if (num1 > num2) { result = num1 } else { result = num2 } return result }
Max value is : 200
从函数返回多个值
Go语言函数可以返回多个值。例如:
package mainimport "fmt"
func swap(x, y string) (string, string) { return y, x }
func main() { a, b := swap("Mahesh", "Kumar") fmt.Println(a, b) }
让我们编译和运行上面的程序,这将产生以下结果:
Kumar Mahesh