我有一个作为参数的方法v ...interface{},我需要在前面添加一个string.这是方法:
func (l Log) Error(v ...interface{}) {
l.Out.Println(append([]string{" ERROR "}, v...))
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用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
Run Code Online (Sandbox Code Playgroud)
在这种情况下,前置的正确方法是什么?
来自 JavaScript 和 TypeScript,我想尝试一下 Go 并制作一个简单的计算器。既然 int 和 float 之间存在差异,那么编写接受任意数字的函数的首选方法是什么?
例如:
package main
func add(a float64, b float64) float64 {
return a + b;
}
func main() {
a := 1;
b := 2;
fmt.Println(add(1, 2)); // 3
fmt.Println(add(a, b)); // Cannot use a (type int) as type float64 in argument to add
fmt.Println(add(1.5, 3.2)); // 4.7
fmt.Println(add(2.5, 2)); // 4.5
}
Run Code Online (Sandbox Code Playgroud)
我是否需要将所有内容都转换为浮点型(因为它“覆盖”了 int 范围),还是为每种类型创建一个单独的函数,例如addInt(a int, b int) intand addFloat(a float64, b float64) float64?或者可能有一种更优雅的方式吗?
我有一个切片:
mySlice := []int{4,5,6,7}
myelement := 3
Run Code Online (Sandbox Code Playgroud)
我想myelement在索引处插入0,以便我的输出为[3,4,5,6,7].
我怎样才能做到这一点?