2 回答

TA貢獻1824條經(jīng)驗 獲得超8個贊
內(nèi)聯(lián)函數(shù)的工作方式Go不同于它在 C 或其他語言中的工作方式。Go編譯器足夠智能,可以在其編譯代碼中將更簡單的函數(shù)轉(zhuǎn)換為內(nèi)聯(lián)函數(shù)。
因此,如果您希望減少代碼重復或降低代碼的認知復雜性,如果您的記錄器正在對文件執(zhí)行某些會消耗時間的寫入操作,您可以采用以下方法創(chuàng)建一個匿名函數(shù)并將其分配給變量并記錄您的錯誤。
func returnFromErr(){
// Create a anonynous function and assign it a variable
logErr := func (err error)bool {
if err != nil{
logger(err)
}
return err != nil
}
err := someFunction()
// call the function and log your error. You can avoid certain level of duplication
if logErr(err){return}
fmt.Println("no error")
}
func main(){
returnFromErr()
}

TA貢獻1875條經(jīng)驗 獲得超3個贊
你可以使用 https://gitlab.com/opennota/macro
在 input.go.tmpl 中定義宏
func MACRO_m1(a, b int) {
a = b ^ 1
}
func main(){
m1(v1, v2)
}
在命令行上
macro input.go.tmpl output.go
將轉(zhuǎn)換為
func main(){
v1 = v2 ^ 1
}
- 2 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報