函数定义格式

  1. func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) {
  2. // 函数体
  3. return v1, v2 // 返回多个值
  4. }

函数定义说明

  • func: 函数由关键字 func 开始声明
  • FuncName: 函数名称,根据规定,函数名首字母小写即为 private, 大写即为 public
  • 参数列表: 函数可以有0个或多个参数,参数格式为: 变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数
  • 返回类型:
    1. 上面返回值声明了两个变量名 o1 和 o2 (命名返回参数),这个不是必须,可以只有类型没有变量名
    2. 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号
    3. 如果没有返回值,那么就直接省略最后的返回信息
    4. 如果有返回值,那么必须在函数的内部添加 return 语句

      推荐写法

      1. func test() (int a, int b, int c) {
      2. a, b, c = 111, 222, 333
      3. return
      4. }

      匿名函数

      1. f1 := func() {
      2. // 函数体
      3. }
      4. f1()

      定义匿名函数,同时调用

  1. func() {
  2. // 函数体
  3. }()

回调

  1. func Init(callback func(result string)) {
  2. callback("a")
  3. }
  4. Init(func(content string) {
  5. fmt.Println(content)
  6. })