Go 函数和方法
函数式编程的语言中,函数是一等公民(不是对象Object或Class),Go语言中也不例外.
函数:
函数声明:
func 函数名(参数列表) 返回值类型列表 { 函数体 }
函数声明包含一个函数名,参数列表, 返回值列表和函数体。如果函数没有返回值,则返回列表可以省略。函数从第一条语句开始执行,直到执行return语句或者执行函数的最后一条语句。
函数可以没有参数或接受多个参数。
// 加法
func Sum(num1 int, num2 int) int{
return num1 + num2
}
// 减法,多返回值必须用()括起来
func Subtraction(num1 int, num2 int) (int, error){
return num1 + num2,nil
}
函数也可以作为参数传递,复杂的函数签名(参数,返回值)建议定义为函数类型,提高代码可阅读性
// 定义一个函数类型。
type FormatFunc func(x, y int) string
// 定义一个函数,第一个参数是 FormatFunc 类型
func format(fn FormatFunc, x, y int) string {
return fn(x, y)
}
func main() {
// 调用format函数;第一个参数传入匿名函数,匿名函数签名和 FormatFunc 一致
s2 := format(func(x, y int) string {
return fmt.Sprintf(s, x, y)
}, 10, 20)
println(s1, s2)
}
方法:
方法声明:
func (recevier type) 方法名(参数列表) 返回值类型列表 { 方法体 }
与函数声明类似;不同的是方法名前面多了一个接收者,意思该方法只能由type类型的实例或者指针调用
浙公网安备 33010602011771号