在Go中, 函数是基本的构建块。函数用于将大问题分解为较小的任务。我们可以多次调用一个函数, 因此函数可以提高代码的可重用性。 Go中有3种函数:
- 具有标识符的正常函数
- 匿名或lambda函数
- 方法(具有接收器的函数)
函数参数, 返回值以及类型称为函数签名。
无法在另一个函数内声明函数。如果要实现此目的, 可以通过匿名函数来实现。
转到函数示例
package main
import "fmt"
type Employee struct {
fname string
lname string
}
func (emp Employee) fullname(){
fmt.Println(emp.fname+" "+emp.lname)
}
func main() {
e1 := Employee{ "John", "Ponting"}
e1.fullname()
}
输出:
John Ponting
带返回函数
让我们看一个带有返回值的函数示例。
package main
import (
"fmt"
)
func fun() int {
return 123456789
}
func main() {
x := fun()
fmt.Println(x)
}
输出:
123
具有多返回函数
让我们看一个函数示例, 该函数以n个int类型作为参数并返回两个int值。返回值以并行分配的方式填充在调用函数中。
Go函数多次返回示例
package main
import (
"fmt"
)
func main() {
fmt.Println(addAll(10, 15, 20, 25, 30))
}
func addAll(args ... int)(int, int) {
finalAddValue:=0
finalSubValue:=0
for _, value := range args{
finalAddValue += value
finalSubValue -= value
}
return finalAddValue, finalSubValue
}
输出:
100 -100