当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《golang将一个字符串添加到切片interface{}》经验,为你挑选了1个好方法。

我有一个作为参数的方法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

在这种情况下,前置的正确方法是什么?



1> icza..:

append() 只能附加与切片的元素类型匹配的类型的值:

func append(slice []Type, elems ...Type) []Type

因此,如果你有元素[]interface{},你必须将你的首字母包装string成一个[]interface{}能够使用append():

s := "first"
rest := []interface{}{"second", 3}

all := append([]interface{}{s}, rest...)
fmt.Println(all)

输出(在Go Playground上试试):

[first second 3]

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有