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

我应该如何在Go中定义一个空切片?

东郭臻
2023-03-14
问题内容

更确切地说,似乎我可以做这三件事中的任何一件。它们之间有什么区别吗?哪个最好,为什么?

  1. var foo []int
  2. foo := []int{}
  3. foo := make([]int, 0)

问题答案:

1)是零切片。

2)和3)是长度为零,容量为零的非零切片。

操场上的例子

没有一个选项分配内存。

所有这些选项通常在Go代码中使用。

因为lencapappend与零切片,1)的工作通常可以互换2)和3)中使用。



 类似资料:
  • 问题内容: 我的gopath是,跟随如下: 现在,我使用,然后变为: 这是: 那么,我应该使用什么命令?为什么没用?我的go版本是1.6.2。 问题答案: 借助Go1.6,您可以在阅读时内置供应商。这是什么意思?只有一件事要牢记: 当使用诸如或的工具时,他们首先检查依赖项是否位于中。如果是这样,请使用它。如果不是,请还原到该目录。 Go 1.6中的实际“查找路径”依次为: 话虽如此,将继续安装到您

  • 问题内容: 用一个新的数组,我这样做: 对象有类似的语法吗 问题答案: 手册中的注释总结起来最好: stdClass是默认的PHP对象。stdClass没有属性,方法或父级。它不支持魔术方法,并且不实现任何接口。 当将标量或数组转换为Object时,将获得stdClass的实例。只要需要通用对象实例,就可以使用stdClass。

  • 问题内容: 我是golang的新手,想找到一种定义 单个 变量的方法。 这是 Effective Go 参考中的演示程序。 如您所见,我可以用数组包装一个字节,一切正常,但是如何在不使用数组的情况下定义单个字节?谢谢。 问题答案: 在您的示例中,使用转换语法可以正常工作: 转换是形式的表达式,其中是类型,是可以转换为type的表达式。 请参阅此操场示例。 输出:

  • 我有一个包含一个活动和两个片段的应用程序,在第一个片段中,我应该能够将数据插入数据库,在第二个片段中,我应该能够在一个RecyclerView中看到添加的项目。 所以我已经创建了数据库、我的RecyclerView适配器和ViewModel, 我是否应该在活动中初始化ViewModel,并以某种方式从片段中调用它来使用insert? 我是否应该在两个片段中初始化viewmodel两次? 我的代码如

  • 问题内容: 在Go中清除切片的适当方法是什么? 这是我在go论坛中找到的内容: 这样对吗? 为了澄清起见,清除了缓冲区,以便可以重用它。 一个示例是bytes包中的Buffer.Truncate函数。 请注意,Reset只是调用Truncate(0)。因此看来,在这种情况下,第70行将评估:b.buf = b.buf [0:0] http://golang.org/src/pkg/bytes/bu

  • 创建大小为的隐式数组,并创建一个隐式数组的浅副本,指向数组中的前7个元素。 考虑 创建不指向任何隐式数组的零长度切片。 创建长度为2的新隐式数组,并附加值和。slice()指向新的隐式数组,其中