golang ajouter une chaîne à une tranche ...interface{}
J'ai une méthode qui a comme argument v ...interface{}
, j'ai besoin de la faire précéder de cette tranche d'un string
. Voici la méthode:
func (l Log) Error(v ...interface{}) {
l.Out.Println(append([]string{" ERROR "}, v...))
}
Quand j'ai essayer avec append()
il ne fonctionne pas:
> 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
Quelle est la bonne manière d'ajouter dans ce cas?
Vous ne devriez pas avoir une méthode qui prend
Ce guide peut être utile pour vous. github.com/golang/go/wiki/SliceTricks
merci pour le partage @EzequielMoreno
v ...interface{}
comme un argument en premier lieu.Ce guide peut être utile pour vous. github.com/golang/go/wiki/SliceTricks
merci pour le partage @EzequielMoreno
OriginalL'auteur bachr | 2015-12-15
Vous devez vous connecter pour publier un commentaire.
append()
pouvez uniquement ajouter des valeurs du type correspondant au type d'élément de la tranche:Donc si vous avez des éléments à la
[]interface{}
, vous devez emballer votre initialestring
dans un[]interface{}
pour être en mesure d'utiliserappend()
:De sortie (essayez sur la Aller De L'Aire De Jeux):
append([]interface{}{s}, rest...)
a fonctionné pour moiOriginalL'auteur icza