服务器之家

服务器之家 > 正文

如何使用 Go 中的函数类型 (Function Types)?

时间:2021-09-15 23:44     来源/作者:Go编程时光

=如何使用 Go 中的函数类型 (Function Types)?

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

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

  1. typeGreetingfunc(namestring)string

这种类型有两个特征:

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

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

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

  1. funcenglish(namestring)string{
  2. return"Hello,"+name
  3. }
  4.  
  5. //转换成Greeting类型的函数对象
  6. greet:=Greeting(english)
  7. //或者
  8. vargreetGreeting=english

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

  1. func(gGreeting)say(nstring){
  2. fmt.Println(g(n))
  3. }

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

  1. greet.say("World")

将上面的代码整合在一起

  1. packagemain
  2.  
  3. import"fmt"
  4.  
  5. //Greetingfunctiontypes
  6. typeGreetingfunc(namestring)string
  7.  
  8. func(gGreeting)say(nstring){
  9. fmt.Println(g(n))
  10. }
  11.  
  12. funcenglish(namestring)string{
  13. return"Hello,"+name
  14. }
  15.  
  16. funcmain(){
  17. greet:=Greeting(english)
  18. greet.say("World")
  19. }
  20. //output:Hello,World

原文链接:https://mp.weixin.qq.com/s/hrnQI8Gx-LeJq9jQBhWsxg

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部