zoukankan      html  css  js  c++  java
  • 如何使用 Go 中的函数类型 (function types)?

     

    函数类型(function types)是一种很特殊的类型,它表示着所有拥有同样的入参类型和返回值类型的函数集合。

    如下这一行代码,定义了一个名叫 Greeting 的函数类型

    type Greeting func(name string) string

    这种类型有两个特征:

    1. 只接收一个参数 ,并且该参数的类型为 string

    2. 返回值也只有一个参数,其类型为 string

    一个函数只要满足这些特征,那么它就可以通过如下方式将该函数转换成 Greeting 类型的函数对象(也即 greet)

    func english(name string) string {
        return "Hello, " + name
    }

    // 转换成 Greeting 类型的函数对象
    greet := Greeting(english)
    // 或者
    var greet Greeting = english

    greet 做为 Greeting 类型的对象,也拥有 Greeting 类型的所有方法,比如下面的 say 方法

    func (g Greeting) say(n string) {
        fmt.Println(g(n))
    }

    直接调用试试看,并不会报错

    greet.say("World")

    将上面的代码整合在一起

    package main

    import "fmt"

    // Greeting function types
    type Greeting func(name string) string

    func (g Greeting) say(n string) {
        fmt.Println(g(n))
    }

    func english(name string) string {
        return "Hello, " + name
    }

    func main() {
        greet := Greeting(english)
        greet.say("World")
    }
  • 相关阅读:
    Oracle Database 11g : SQL 基础
    Idea-Java接入银联支付的Demo
    Linux文件系统挂载管理
    Linux文件系统
    使用fdisk进行磁盘管理
    Vim文本编辑器
    Linux系统常用命令
    Linux系统目录架构
    Linux文件基本操作管理
    Linux文件系统的基本结构
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15292604.html
Copyright © 2011-2022 走看看