新聞中心
=[[423991]]

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比濰城網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式濰城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋濰城地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
函數(shù)類型(function types)是一種很特殊的類型,它表示著所有擁有同樣的入?yún)㈩愋秃头祷刂殿愋偷暮瘮?shù)集合。
如下這一行代碼,定義了一個(gè)名叫 Greeting 的函數(shù)類型
- type Greeting func(name string) string
這種類型有兩個(gè)特征:
只接收一個(gè)參數(shù) ,并且該參數(shù)的類型為 string
返回值也只有一個(gè)參數(shù),其類型為 string
一個(gè)函數(shù)只要滿足這些特征,那么它就可以通過(guò)如下方式將該函數(shù)轉(zhuǎn)換成 Greeting 類型的函數(shù)對(duì)象(也即 greet)
- func english(name string) string {
- return "Hello, " + name
- }
- // 轉(zhuǎn)換成 Greeting 類型的函數(shù)對(duì)象
- greet := Greeting(english)
- // 或者
- var greet Greeting = english
greet 做為 Greeting 類型的對(duì)象,也擁有 Greeting 類型的所有方法,比如下面的 say 方法
- func (g Greeting) say(n string) {
- fmt.Println(g(n))
- }
直接調(diào)用試試看,并不會(huì)報(bào)錯(cuò)
- 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
當(dāng)前名稱:如何使用Go中的函數(shù)類型(FunctionTypes)?
本文鏈接:http://m.fisionsoft.com.cn/article/djjgsge.html


咨詢
建站咨詢
