第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Golang 堅(jiān)持包作用域的函數(shù)具有特定類型

Golang 堅(jiān)持包作用域的函數(shù)具有特定類型

Go
茅侃侃 2021-12-07 18:55:41
如果我有一個(gè)類型同義詞FooType和一個(gè)函數(shù)Foo,有沒有辦法堅(jiān)持它Foo是FooType. 我想要一個(gè)顯式,F(xiàn)ooType以便我可以在類型開關(guān)中使用它。var如果可以避免的話,我不想使用and 函數(shù)文字,因?yàn)檫@樣當(dāng)我嘗試重新定義函數(shù)時(shí)就不會(huì)出錯(cuò)。package mainimport (    "fmt"    "reflect")type FooType func(a int, b float64) float32// foo happens to be of FooType, but this relationship isn't// enforced by the compiler.func Foo(a int, b float64) float32 {    return 2.4}func main () {    fmt.Printf("type of foo: %v\n", reflect.TypeOf(foo))}這樣做的動(dòng)機(jī)是我有兩種類型的過(guò)濾器可以處理文本流或結(jié)構(gòu)化對(duì)象。// process items from channelfunction filter1(in <-chan interface{}, out chan<- chan interface{}) {    for item := range in {        out <- doStuff(item)    }}// process items from Scannerfunction filter2(scanner *Scanner, out chan<- chan interface{}) {    for scanner.Scan() {        out <- doStuff(scanner.Text())    }}我希望能夠編寫一個(gè)函數(shù),該函數(shù)接受一個(gè)*exec.Cmd過(guò)濾器數(shù)組并將它們組合起來(lái)。
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以分配Foo一個(gè)匿名變量類型FooType,如果類型不匹配,編譯器會(huì)抱怨它,例如:


package main


type FooType func(a int, b float64) float32


func Foo(a int, b float64) float32 {

    return 2.4

}


func NotAFoo(a string, b bool) float32 {

    return 2.4

}


var _ FooType = Foo

var _ FooType = NotAFoo


func main() {

}

請(qǐng)注意,var _ FooType = NotAFoo爆炸。如果您將其注釋掉,則程序運(yùn)行良好。


查看完整回答
反對(duì) 回復(fù) 2021-12-07
  • 1 回答
  • 0 關(guān)注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)