对象初始化的语法问题
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,因此您不能将其用作另一个函数的参数,或在初始化程序中使用 - 仅在多值赋值中,您可以捕获并检查错误。
我有以下工作代码
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,因此您不能将其用作另一个函数的参数,或在初始化程序中使用 - 仅在多值赋值中,您可以捕获并检查错误。