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

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

如何使用 golang 庫中的回調(diào)函數(shù)?

如何使用 golang 庫中的回調(diào)函數(shù)?

Go
楊魅力 2023-06-12 15:03:33
我對 Go 還是比較陌生,我決定嘗試一些 OpenGL,因為存在一個為此提供綁定的 Go 庫。作為設(shè)置 OpenGL 的一部分,我需要使用 Go?glfw 庫。我需要使用 glfw 庫函數(shù)SetFramebufferSizeCallback ,它需要一個FrameBuffersizeCallback類型的參數(shù);所以我基本上需要傳遞一個與我相信我已經(jīng)完成的類型的簽名相匹配的函數(shù)。但是,我不斷收到以下錯誤:./main.go:43:35: 不能在 window.SetFramebufferSizeCallback 的參數(shù)中使用 fbCallback(類型 func(*glfw.Window,int32,int32))作為類型 glfw.FramebufferSizeCallback我真的不確定為什么會這樣。我檢查過我的 glfw 版本是否與文檔匹配;我已經(jīng)檢查了 github 和我的機器上的實現(xiàn)代碼,它們都是一致的。所以我不知道我做錯了什么。這是我的代碼,如果構(gòu)建它應(yīng)該不會做任何有趣的事情,但會顯示錯誤:package mainimport (? ? "github.com/go-gl/gl/v3.3-core/gl"? ? "github.com/go-gl/glfw/v3.2/glfw"? ? "log"? ? "runtime")func fbCallback(window *glfw.Window, width int32, height int32) {? ? gl.Viewport(0, 0, width, height)}func init() {? ? runtime.LockOSThread()}func main() {? ? err := glfw.Init()? ? if err != nil {? ? ? ? panic(err)? ? }? ? defer glfw.Terminate()? ? glfw.WindowHint(glfw.ContextVersionMajor, 3)? ? glfw.WindowHint(glfw.ContextVersionMinor, 3)? ? glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)? ? window, err := glfw.CreateWindow(640, 480, "Testing", nil, nil)? ? if err != nil {? ? ? ? panic(err)? ? }? ? window.MakeContextCurrent()? ? if err := gl.Init(); err != nil {? ? ? ? log.Fatalln(err)? ? }? ? gl.Viewport(0, 0, 800, 600)? ? window.SetFramebufferSizeCallback(fbCallback) //Does not work}我對這應(yīng)該如何真正工作的理解在以下有效的簡短程序中得到了證明。我很高興有人指出為什么這個簡短的示例有效而上面的示例無效。我的理解可能有一些漏洞。package mainimport (? ? "fmt")type callback func(int, int) intfunc sum(x int, y int) int {? ? return x + y}func useCallback(cb callback) {? ? result := cb(2, 3)? ? fmt.Println(result)}func main() {? ? useCallback(sum)}
查看完整描述

1 回答

?
慕俠2389804

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


type?FramebufferSizeCallback?func(w?*Window,?width?int,?height?int)

對比

func?fbCallback(window?*glfw.Window,?width?int32,?height?int32)

您的函數(shù)沒有相同的簽名,它使用的是 int32 而不是 int。


查看完整回答
反對 回復(fù) 2023-06-12
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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