• go函数


    一。定义

          1. 关键字:func

          2.函数名:

          3.参数列表:

             1. 实参:传入的参数

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

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

          4.返回值:

             4.1 如果返回值命名了,这个名称不能在函数内再用

             4.2 函数多返回值:

    二。闭包函数:

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

          2.因为 Go 不支持在一 个函数的内部再定义一个嵌套函数,所以使用闭包函数能够实现在一个函数内 部定义另一个函数的目的。

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

    三。把函数变成一种数据类型:

          1. 格式: type   xxx   func(yyy)(zzz)

             a. 在类型声明的名称xxx右边的是func关键字,我们由此就可知道这是一个函数类型的声明。

             b. 在func右边的就是这个函数类型的参数列表yyy和结果列表zzz

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

    函数高阶用法:

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

    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. 把其他的函数作为结果返回。

        

         样例一

         样例二

        

  • 相关阅读:
    Spring Boot下的一种导入Excel文件的代码框架
    Spring Boot下的一种导出CSV文件的代码框架
    Spring Boot下的一种导出Excel文件的代码框架
    使用系统参数表,提升系统的灵活性
    折纸效果! Cocos Creator 3.0
    弹性跟随相机!3D入门教程!
    dotnet OpenXML 读取 PPT 主序列进入退出强调动画
    dotnet C# 调用委托的 GetInvocationList 的对象分配
    WPF 下拉框选项做鼠标 Hover 预览效果
    WPF 后台代码做 TranslateTransform 的动画
  • 原文地址:https://www.cnblogs.com/derekchen/p/9740925.html
Copyright © 2020-2023  润新知