对象初始化的语法问题

我有以下工作代码


    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,

    }

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


隔江千里
浏览 69回答 1
1回答

呼如林

不,你不能在一个语句中完成所有操作。这是有原因的:你应该处理错误,而不是忽视它。任何可能导致错误的函数都将具有多值返回,因此您不能将其用作另一个函数的参数,也不能在初始值设定项中使用 , 只能在多值赋值中捕获和检查错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go