码迷,mamicode.com
首页 > 其他好文 > 详细

go函数类型

时间:2020-04-01 12:41:42      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:声明   数据   多重   就是   col   nbsp   turn   UNC   bsp   

1、什么是go的函数类型呢?

  • go的函数类型定义:用type +函数类型名 (输入类型)(输出类型),代表一类的函数
  • //函数类型,函数本身也是一种数据类型
    func Minus(a, b int32) int32 {
        return a - b
    }
    
    func Add(a, b int32) int32 {
        return a + b
    }
    
    //定义函数类型 ,通过type给函数类型起名
    //FuncType它是一个函数类型
    type FuncType func(int32, int32) int32 //这种函数类型它代表两个输入int32,和一个输出int32的类型

    //实现
    FuncType
    
    
    func UseFunType() {
    
        //声明一个函数类型
        var aFunType FuncType
    
        //给函数类型赋值
        aFunType = Add
        aFunType(10, 5)
    
        //重新给函数类型赋值
        aFunType = Minus
        aFunType(10, 5)
    
        //函数类型的作用是实现函数的多态
        num := Calc(1, 2, Add)
        fmt.Println("%d", num)
    }

2、go的函数类型有什么用呢?

  • 实现函数的多态,什么是多态呢?就是一个函数实现多种形态
  • //回调函数,函数有一个参数是函数类型,这个函数就是回调函数
    //多态,多种形态,调用统一接口,不同的表现
    //Calc函数实现了很多与函数类型相似的输入和输出的函数
    //实现函数的多重功能
    func Calc(a, b int32, fTest FuncType) (result int32) {
        fmt.Println("Calc")
        result = fTest(a, b)
        return
    }
  • 有点就是我可以写调用函数的函数。

 

go函数类型

标签:声明   数据   多重   就是   col   nbsp   turn   UNC   bsp   

原文地址:https://www.cnblogs.com/oceanran/p/12611526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!