当前位置: 首页 > 科技观察

如何在Go中使用函数类型?

时间:2023-03-16 21:35:07 科技观察

=函数类型(functiontypes)是一种非常特殊的类型,它代表了所有具有相同输入参数类型和返回值类型的函数的集合。下面这行代码定义了一个函数类型GreetingtypeGreetingfunc(namestring)string这个类型有两个特点:只接受一个参数,参数类型为string,返回值只有一个参数,类型为string一个函数只要满足这些特性,就可以把函数转换成Greeting类型的函数对象(也就是greet)funcenglish(namestring)string{return"Hello,"+name}//下面转换成Greeting类型way函数对象greet:=Greeting(english)//或者vargreetGreeting=englishgreet是Greeting类型的对象,也有Greeting类型的所有方法,比如下面的say方法func(gGreeting)say(nstring){fmt.Println(g(n))}直接调用试试,不会报错greet.say("World")把上面的代码整合在一起说(nstring){fmt.Println(g(n))}funcenglish(namestring)string{return"Hello,"+name}funcmain(){greet:=Greeting(english)greet.say("World")}//输出:Hello,World