我正在实现标准日志包的包装器,以创建具有各种日志级别的记录器.
我有以下界面:
type Logger interface {
Trace(fmt string, args ...interface{})
Debug(fmt string, args ...interface{})
Info(fmt string, args ...interface{})
Warn(fmt string, args ...interface{})
Error(fmt string, args ...interface{})
Fatal(fmt string, args ...interface{})
Panic(fmt string, args ...interface{})
}
Run Code Online (Sandbox Code Playgroud)
在实现中我有这样的东西(不是确切的代码)
func Info(format string, args ...interface{}){
msg := fmt.Sprintf(format, args...)
log.Println(msg)
}
Run Code Online (Sandbox Code Playgroud)
现在,假设我像这样调用我的库:
logger.Info("Hello %s", "World")
Run Code Online (Sandbox Code Playgroud)
我得到打印输出:"Hello%!(EXTRA string = WORLD)",而不是预期的"Hello World".如果我这样做有类似的输出
msg := fmt.Sprintf(format, args)
Run Code Online (Sandbox Code Playgroud)
这将返回"Hello World%!EXTRA [] interface {} = []".
kinect传感器返回的深度值对应于距xy平面的真实世界z距离(以mm为单位).到目前为止,我在最新的sdk中找不到任何返回x和y坐标相似的东西.这是在sdk中提供的吗?如果做不到这一点,那么计算x和y的好方法是什么?
我有以下F#代码:
let list = Array.create 5 (new ResizeArray<char>())
list.[0].Add('c')
printfn "%A" list
Run Code Online (Sandbox Code Playgroud)
这是FSI控制台中的输出:
[|seq ['c']; seq ['c']; seq ['c']; seq ['c']; seq ['c']|]
Run Code Online (Sandbox Code Playgroud)
对我来说似乎很奇怪,因为我试图仅将'c'添加到第一个索引,但它似乎添加到数组中的所有索引.我究竟做错了什么?