=[[423991]]
创新互联-专业网站定制、快速模板网站建设、高性价比潍城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式潍城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖潍城地区。费用合理售后完善,10余年实体公司更值得信赖。
函数类型(function types)是一种很特殊的类型,它表示着所有拥有同样的入参类型和返回值类型的函数集合。
如下这一行代码,定义了一个名叫 Greeting 的函数类型
- type Greeting func(name string) string
这种类型有两个特征:
只接收一个参数 ,并且该参数的类型为 string
返回值也只有一个参数,其类型为 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")
- }
- // output: Hello, World
本文标题:如何使用Go中的函数类型(FunctionTypes)?
分享链接:http://www.shufengxianlan.com/qtweb/news36/497536.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联