引数として_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
_
この場合に追加する適切な方法は何ですか?
append()
は、スライスの要素タイプに一致するタイプの値のみを追加できます。
_func append(slice []Type, elems ...Type) []Type
_
したがって、要素が_[]interface{}
_である場合、append()
を使用するには、最初のstring
を_[]interface{}
_でラップする必要があります。
_s := "first"
rest := []interface{}{"second", 3}
all := append([]interface{}{s}, rest...)
fmt.Println(all)
_
出力( Go Playground で試してください):
_[first second 3]
_