在我当前的项目中,我正在尝试编写一个有条件地调用fmt.Println的日志记录函数.
我当前的Log函数如下所示:
func Log(level int, a ...interface{}) {
if level <= LogLevel {
fmt.Println(a)
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我这样称它时,由于某种原因,Log的输出被括在括号中:
http://play.golang.org/p/Aa8vC54Ih0
package main
import "fmt"
var LogLevel int
func main() {
fmt.Println("string", 10, 3.1415926)
LogLevel = 1
Log(1, "string", 10, 3.1415926)
}
func Log(level int, a ...interface{}) {
if level <= LogLevel {
fmt.Println(a)
}
}
string 10 3.1415926
[string 10 3.1415926]
Run Code Online (Sandbox Code Playgroud)
这对我看起来像aLog中的参数以某种方式被转换.我将如何以a与直接调用fmt.Println相同的方式传递给fmt.Println?
cth*_*m06 13
只需fmt.Println(a)改为fmt.Println(a...)
请参阅go规范中的"将参数传递给...参数" http://golang.org/ref/spec#Passing_arguments_to_..._parameters
| 归档时间: |
|
| 查看次数: |
3219 次 |
| 最近记录: |