标签:传递 必须 参数传递 ror foo bsp 函数定义 函数调用 rgs
import "errors" func Add(a int, b int) (ret int, err error) { if a < 0 || b < 0 { err = errors.New("必须是非负数") } return a + b, nil // 支持多重返回 }
多个参数值类型相同可以简写
func Add(a, b int) int { return a + b }
//导入函数所在的包,然后直接调用即可 import Mymath Mymath.Add(1, 2)
func Myfunc(args ...int){ // ...int是一个语法糖,只能作为函数参数存在,且必须是最后一个 for _, val := range(args){ fmt.Println(val) } }
不定参数的传递
func Myfunc(args ...int) { for _, val := range(args) { fmt.Println(val) } } func Myfunc1(args ...int) { Myfunc(args...) // 将所有不定参数传递 } func Myfunc2(args ...int) { Myfunc(args[1:]...) // 传递片段 }
任意类型的不定参数
func Myprintf(args ...interface{}) { for _, val := range args{ switch val.(type) { case int: fmt.Println(val, "int") case string: fmt.Println(val, "string") } } }
func foo()(n int, l int) { n = 1 l = 2 fmt.Println(n, l) return //return不带任何值的时候,返回对应的返回值变量的值 } func main() { a, b := foo() fmt.Printf("in main a = %d b is %d", a, b) }
func main() { f := func(x ,y int) int { // 匿名函数赋值给变量 return x + y } f(1, 2) func(a, b int){ //匿名函数直接执行 fmt.Println(a + b) }(1,2) }
标签:传递 必须 参数传递 ror foo bsp 函数定义 函数调用 rgs
原文地址:https://www.cnblogs.com/zhangjian0092/p/12356821.html