📜  Go函数

📅  最后修改于: 2021-01-02 08:21:15             🧑  作者: Mango

Go功能

在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