对象初始化的语法问题

syntax question for object initialization

我有以下工作代码

    serverFile, _ := os.OpenFile("server.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
    debugFile, _ := os.OpenFile("debug.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)

    Logger = &BufferedLogger{
        ServerWriter:    serverFile,
        DebugWriter:     debugFile,
        BufferSize:      100,
    }

如果可能的话,我想简化一下。我试过了

    Logger = &BufferedLogger{
        ServerWriter, _:    os.OpenFile("server.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644),
        DebugWriter, _:     os.OpenFile("debug.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644),
        BufferSize:      100,
    }

语法错误。有人可以给我一个修复它的提示吗,或者这是不可能的?

不,您不能在一条语句中完成所有操作。这是有原因的:你应该处理错误,而不是忽略它。任何可能导致错误的函数都将具有多值 return,因此您不能将其用作另一个函数的参数,或在初始化程序中使用 - 仅在多值赋值中,您可以捕获并检查错误。