golang中的函数
By admin
- One minute read - 47 words函数是构建Go程序的基础部件;所遇有趣的事情都是在它其中发生的。函数 的定义看起来像这样: Listing 3.1. 函数定义
type mytype int 新的类型,参阅第 5 章 0 保留字func用于定义一个函数;
1 函数可以定义用于特定的类型,这类函数更加通俗的称呼是method。这 部分称作receiver而它是可选的(可参考: http://blog.haohtml.com/archives/13766)。如下图:
2 funcname是你函数的名字; 3 int类型的变量q作为输入参数。参数用pass-by-value方式传递,意味着它 们会被复制; 4 变量r和s是这个函数的命名返回值。在Go的函数中可以返回多个值。 参阅第32页的“多值返回”。如果不想对返回的参数命名,只需要提供类 型:(int,int)。如果只有一个返回值,可以省略圆括号。如果函数是一 个子过程,并且没有任何返回值,也可以省略这些内容; 5 这是函数体,注意return是一个语句,所以包裹参数的括号是可选的。
这里有两个例子,左边的函数没有返回值,右边的只是简单的将输入返回。
[java]func subroutine(in int) { return } func identity(in int) int { return in }[/java]
可以随意安排函数定义的顺序,编译器会在执行前扫描每个文件。所以函数原 型在Go中都是过期的旧物。Go不允许函数嵌套。然而你可以利用匿名函数实 现它,参阅本章第35页的“函数作为值”。