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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們可以在Go中使用函數(shù)指針嗎?

我們可以在Go中使用函數(shù)指針嗎?

Go
守著一只汪 2021-04-07 13:14:44
我正在學(xué)習(xí)Go語言中的指針。并設(shè)法寫了像這樣的東西:func hello(){       fmt.Println("Hello World")}func main(){       pfunc := hello     //pfunc is a pointer to the function "hello"       pfunc()            //calling pfunc prints "Hello World" similar to hello function}有沒有一種方法可以聲明函數(shù)指針而無需像上面那樣定義它?我們可以像在C語言中一樣編寫一些東西嗎?例如 void (*pfunc)(void);
查看完整描述

3 回答

?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個贊

Go對于函數(shù)指針的語法與C和C ++不同。Go博客上對此有很好的解釋??梢岳斫?,Go的作者認(rèn)為C的函數(shù)指針語法與常規(guī)指針非常相似,因此簡而言之,他們決定使函數(shù)指針明確。即更具可讀性。


這是我寫的一個例子。請注意,如何在fp中定義參數(shù),calculate()下面的另一個示例向您展示如何將函數(shù)指針變成類型并在函數(shù)中使用它(帶注釋的calculate函數(shù))。


package main


import "fmt"


type ArithOp func(int, int)int


func main() {

    calculate(Plus)

    calculate(Minus)

    calculate(Multiply)

}


func calculate(fp func(int, int)int) {

    ans := fp(3,2)

    fmt.Printf("\n%v\n", ans) 

}


// This is the same function but uses the type/fp defined above

// 

// func calculate (fp ArithOp) {

//     ans := fp(3,2)

//     fmt.Printf("\n%v\n", ans) 

// }


func Plus(a, b int) int {

    return a + b

}


func Minus(a, b int) int {

    return a - b

}


func Multiply(a,b int) int {

    return a * b

}

該fp參數(shù)定義為一個接受兩個int并返回一個int的函數(shù)。這與Mue提到的有些相同,但是顯示了不同的用法示例。


查看完整回答
反對 回復(fù) 2021-04-26
  • 3 回答
  • 0 關(guān)注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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