2 回答
TA贡献1824条经验 获得超8个赞
内联函数的工作方式Go不同于它在 C 或其他语言中的工作方式。Go编译器足够智能,可以在其编译代码中将更简单的函数转换为内联函数。
因此,如果您希望减少代码重复或降低代码的认知复杂性,如果您的记录器正在对文件执行某些会消耗时间的写入操作,您可以采用以下方法创建一个匿名函数并将其分配给变量并记录您的错误。
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条经验 获得超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
将转换为
func main(){
v1 = v2 ^ 1
}
- 2 回答
- 0 关注
- 190 浏览
添加回答
举报
