相关疑难解决方法(0)

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

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

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

arrays go slice prepend

15
推荐指数
1
解决办法
2万
查看次数

如何编写接受任何数字类型的通用函数?

来自 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?或者可能有一种更优雅的方式吗?

generics go

5
推荐指数
2
解决办法
1万
查看次数

如何在切片的开头插入元素?

我有一个切片:

mySlice := []int{4,5,6,7}
myelement := 3
Run Code Online (Sandbox Code Playgroud)

我想myelement在索引处插入0,以便我的输出为[3,4,5,6,7].

我怎样才能做到这一点?

go slice

2
推荐指数
1
解决办法
6633
查看次数

标签 统计

go ×3

slice ×2

arrays ×1

generics ×1

prepend ×1