小编dia*_*pha的帖子

Golang:fmt,variadic args和%!(EXTRA type = value)错误

我正在实现标准日志包的包装器,以创建具有各种日志级别的记录器.

我有以下界面:

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 {} = []".

go

7
推荐指数
2
解决办法
8007
查看次数

如何根据kinect深度数据确定"真实世界"x,y坐标?

kinect传感器返回的深度值对应于距xy平面的真实世界z距离(以mm为单位).到目前为止,我在最新的sdk中找不到任何返回x和y坐标相似的东西.这是在sdk中提供的吗?如果做不到这一点,那么计算x和y的好方法是什么?

c# kinect

4
推荐指数
1
解决办法
4480
查看次数

F#/ .NET:向List <T>数组添加一个元素

我有以下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'添加到第一个索引,但它似乎添加到数组中的所有索引.我究竟做错了什么?

.net f#

2
推荐指数
1
解决办法
1420
查看次数

标签 统计

.net ×1

c# ×1

f# ×1

go ×1

kinect ×1