无涯教程-Go - 函数类型

56 阅读2分钟

函数也称为方法,每个Go程序至少都有一个函数,即 main(),您可以将代码分成单独的函数,Go标准库提供了程序可以调用的许多内置函数

定义函数

Go编程语言中的函数定义的一般形式如下-

func function_name( [parameter list] ) [return_types]
{
   body of the function
}

Go编程语言中的函数定义由函数头和函数主体组成。这是函数的所有部分-

  • Func                      - 声明函数。

  • function_name   - 函数名称。

  • parameter            -  函数参数。

  • return_types       - 函数可以返回值列表。

  • body                      - 函数方法实现区。

以下源代码显示了一个名为 max()的函数。此函数采用两个参数num1和num2,并返回两个参数之间的最大值-

/* 返回两个数字之间的最大值的函数 */
func max(num1, num2 int) int {
   /* 局部变量声明 */
   result int

if (num1 > num2) { result=num1 } else { result=num2 } return result }

调用函数

要调用一个函数,您只需要传递所需的参数及其函数名。如果函数返回一个值,则可以存储返回的值。如-

package main

import "fmt"

func main() { /* 局部变量定义 */ var a int=100 var b int=200 var ret int

/* 调用函数以获取最大值 */ ret=max(a, b)

fmt.Printf( "Max value is : %d\n", ret ) }

/* 返回两个数字之间的最大值的函数 / func max(num1, num2 int) int { / 局部变量声明 */ var result int

if (num1 > num2) { result=num1 } else { result=num2 } return result }

我们保留了max()函数和main()函数,并编译了源代码。在运行最终可执行文件时,它将产生以下输出-

Max value is : 200

返回多个值

Go函数可以返回多个值。如-

package main

import "fmt"

func swap(x, y string) (string, string) { return y, x } func main() { a, b := swap("Mahesh", "Kumar") fmt.Println(a, b) }

编译并执行上述代码后,将产生以下输出-

Kumar Mahesh

函数参数

如果函数要使用参数,则它必须声明接受参数值的变量。这些变量称为函数的形式参数。

Sr.No Call Type & 描述
1 Call by value

此方法将参数的实际值复制到函数的形式参数中。在这种情况下,对函数内部参数的更改不会对参数产生影响。

2 Call by reference

此方法将参数的地址复制到形式参数中。这意味着对参数所做的更改会影响参数。

默认情况下,Go使用按值调用来传递参数,通常,这意味着函数中的代码无法更改用于调用函数的参数。

函数用法

可以通过以下方式使用函数:

Sr.No 函数用法
1 Function as Value

函数可以即时创建,并且可以用作值。

2 Function Closures

函数闭包是匿名函数,可以在动态编程中使用。

3 Method

方法是带有reader的特殊函数。

参考链接

www.learnfk.com/go/go-funct…