当前位置: 首页 > 面试题库 >

Golang:获取切片的类型

吕森
2023-03-14
问题内容

我正在使用反射包来获取任意数组的类型,但是

   prog.go:17: cannot use sample_array1 (type []int) as type []interface {} in function argument [process exited with non-zero status]

如何从数组中获取类型?我知道如何从价值中获取价值。

  func GetTypeArray(arr []interface{}) reflect.Type {
      return reflect.TypeOf(arr[0])
  }

http://play.golang.org/p/sNw8aL0a5f


问题答案:

更改:

GetTypeArray(arr []interface{})

至:

GetTypeArray(arr interface{})

顺便说一句,[]int不是一个数组而是一个整数 切片



 类似资料:
  • 问题内容: 我在以下测试代码中尝试转换为a 时并没有完全理解问题所在: 与有所不同 吗? 还是ListSociete与ListSociete不同? 谢谢。 问题答案: 您当前正在处理两种不同的类型: 和匿名的: 如果不是标记,那么这两个将是相同的。在 围棋规格 的状态(我的重点): 如果两个struct类型具有相同的字段序列,并且对应的字段具有相同的名称,相同的类型 和相同的tag ,则它们是 相

  • 值得注意点的是切片的本质就是一个指针指向数组,所以指向切片的指针是一个二级指针 package main import "fmt" func main() { // 1.定义一个切片 var sce[]int = []int{1, 3, 5} // 2.打印切片的地址 // 切片变量中保存的地址, 也就是指向的那个数组的地址 sce = 0xc0420620a0 f

  • 本文向大家介绍golang 切片截取参数方法详解,包括了golang 切片截取参数方法详解的使用技巧和注意事项,需要的朋友参考一下 以 s := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}为例 0. 建议:做slice截取时建议用两个参数,尤其是从底层数组进行切片操作时,因为这样在进行第一次append操作时,会给切片重新分配空间,这样减少切片对数组的影响。 1. 结论

  • 问题内容: 我目前正在努力完成出色的“围棋之旅”。我使用以下解决方案完成了其中一项练习(#45): 我不明白为什么我必须使用两次该类型的语句(请参见摘要中的注释)。这似乎是多余的,但我不知道该怎么做。 问题答案: Go中没有其他方法可以做到这一点。 是的,我同意这很冗长,但有必要。第二个make()语句完全独立于第一个。可以争论的是,编译器应该能够从推断类型,但此时还不行。 另一点:如果在第二种情

  • 问题内容: 我如何将下面的切片查询写入golang? 尝试过但不起作用 找不到任何东西。有任何想法吗? 先感谢您 问题答案: 使用只能指定过滤器。但是,您有一个预测: 可以使用来指定投影,因此这就是您可以应用in投影的方式: 另请注意,确定您过滤的属性是还是只是一个错字,应该是。如果是后者,您还可以使用按文档ID查询:

  • 问题内容: 我在遍历包含接口切片的接口切片时遇到麻烦。 通过尝试使用返回JSON数据的API调用产生了此问题。返回的数据很多,根据请求的不同,结构也有很大不同。API文档中也没有JSON响应的结构,因此我试图实现一些用于处理任意JSON响应的方法。 当前,当进行初始调用时,将其放入map [string] interface {}中,然后运行switch语句以确定每个元素的类型,当遇到一片接口时就