猿问

golang 将字符串添加到切片 ...interface{}

我有一个作为参数的方法v ...interface{},我需要在这个切片前面加上一个string. 这是方法:


func (l Log) Error(v ...interface{}) {

  l.Out.Println(append([]string{" ERROR "}, v...))

}

当我尝试append()它不起作用时:


> append("some string", v)

first argument to append must be slice; have untyped string

> append([]string{"some string"}, v)

cannot use v (type []interface {}) as type string in append

在这种情况下预先准备的正确方法是什么?


慕妹3242003
浏览 193回答 1
1回答

慕的地6264312

append() 只能附加与切片元素类型匹配的类型的值:func append(slice []Type, elems ...Type) []Type因此,如果您有元素 as []interface{},则必须将首字母包装string在 a[]interface{}中才能使用append():s := "first"rest := []interface{}{"second", 3}all := append([]interface{}{s}, rest...)fmt.Println(all)输出(在Go Playground上试试):[first second 3]
随时随地看视频慕课网APP

相关分类

Go
我要回答