在 C 或 C++ 中,“处理错误”部分我可以使用 MARCO 或 INLINE FUNCTION 删除重复代码。任何人都知道如何在 Golang 中做到这一点?
潇湘沐
浏览 191回答 2
2回答
有只小跳蛙
内联函数的工作方式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()}