go函数

一。定义闭包

      1. 关键字:func函数

      2.函数名:spa

      3.参数列表:code

         1. 实参:传入的参数blog

         2.虚参:函数定义时的,占位参数,是局部变量和外部或者全局变量冲突,互不影响。string

         3.变长参数:arr ...int,得放在最后         class

      4.返回值:import

         4.1 若是返回值命名了,这个名称不能在函数内再用变量

         4.2 函数多返回值:数据类型

二。闭包函数:

      1.将整个函数的定义一鼓作气写好并赋值给一个变量。而后用这个变量名做为函数名去调用函数体

      2.由于 Go 不支持在一 个函数的内部再定义一个嵌套函数,因此使用闭包函数可以实如今一个函数内 部定义另外一个函数的目的。

      3.闭包函数会改变外部变量的值。

 

函数高阶用法:

一。函数类型也是数据类型

package main

import "fmt"

type Printer func(contents string) (n int, err error)

func printToStd(contents string) (bytesNum int, err error) {
    return fmt.Println(contents)
}

func main() {
    var p Printer
    p = printToStd
    p("something")
}

1. 格式: 

   type Printer func(contents string) (n int, err error)

  书写函数签名的方式与函数声明的是一致的。只是紧挨在参数列表左边的不是函数名称,而是关键字func。这里函数名称和func互换了一下位置而已。

   以上格式和说明,把一个函数变成了一个数据类型。

2.实现:

  

 

二。高阶函数的特色:

     1. 接受其余的函数做为参数传入;

     2. 把其余的函数做为结果返回。

    

     样例一

 

     样例二

相关文章
相关标签/搜索