GO语言函数与类型

package main

import ()
import (
    "fmt"
    "reflect"
    "errors"
)

type age int

type userFunc func(name string) error

func (fn *userFunc)String() string {
    return "我是函数你String个毛"
}

func main() {
    var fn userFunc = * new(userFunc)

    fn = func(name string) error {
        fmt.Println("参数是:", name)
        return errors.New("。。。。oh shit 函数也能new。。。。还能当类型")
    }

    fmt.Println(fn("oh no!no!no!"))
    fmt.Println(reflect.TypeOf(&fn))
}

//~output:
参数是: oh no!no!no!
。。。。oh shit 函数也能new。。。。还能当类型
*main.userFunc 


Go语言中的函数可以当作一个类型。

  

原文地址:https://www.cnblogs.com/mrye/p/5584084.html