当前位置: 首页 > 知识库问答 >
问题:

在Go中连接两个切片

东方夕
2023-03-14

我正在尝试组合切片[1,2]和切片[3,4]。我怎么能在围棋中做到这一点?

我试过:

append([]int{1,2}, []int{3,4})

但是得到:

cannot use []int literal (type []int) as type int in append

然而,文档似乎表明这是可能的,我遗漏了什么?

slice = append(slice, anotherSlice...)

共有3个答案

谭骏
2023-03-14

没有什么可以反对其他答案,但是我发现文档中的简短解释比文档中的例子更容易理解:

func append(slice[]Type,elems…Type)[]Typeappend内置函数将元素追加到切片的末尾。如果目的地具有足够的容量,则会重新许可该目的地以容纳新元素。否则,将分配一个新的底层数组。Append返回更新的切片。因此,有必要将append的结果存储在保存切片本身的变量中:

slice = append(slice, elem1, elem2)
slice = append(slice, anotherSlice...)

作为一种特殊情况,将字符串附加到字节片是合法的,如下所示:

slice = append([]byte("hello "), "world"...)
权黎昕
2023-03-14

附加和复制切片

变量函数append将零个或多个x值追加到s类型的s,该类型必须是切片类型,并返回结果切片,也是s类型。值x被传递给类型的参数。。。T其中TS的元素类型,相应的参数传递规则适用。作为一种特殊情况,append还接受可分配给类型[]byte的第一个参数,第二个参数为stringtype,后跟 。此表单追加字符串的字节。

append(s S, x ...T) S  // T is the element type of S

s0 := []int{0, 0}
s1 := append(s0, 2)        // append a single element     s1 == []int{0, 0, 2}
s2 := append(s1, 3, 5, 7)  // append multiple elements    s2 == []int{0, 0, 2, 3, 5, 7}
s3 := append(s2, s0...)    // append a slice              s3 == []int{0, 0, 2, 3, 5, 7, 0, 0}

将参数传递给。。。参数

如果f是变量与最终参数类型...T,则在函数中,参数等效于类型[]T的参数。在每次调用f时,传递给最终参数的参数是类型[]T的一个新片段,其连续元素是实际参数,所有这些参数都必须可分配给类型T。因此,切片的长度是绑定到最终参数的参数的数量,并且可能因每个调用站点而异。

您的问题的答案是examples3:=append(s2,s0…)。例如

s := append([]int{1, 2}, []int{3, 4}...)

商曦
2023-03-14

在第二片后添加点:

//---------------------------vvv
append([]int{1,2}, []int{3,4}...)

这和其他变量函数一样。

func foo(is ...int) {
    for i := 0; i < len(is); i++ {
        fmt.Println(is[i])
    }
}

func main() {
    foo([]int{9,8,7,6,5}...)
}
 类似资料:
  • 问题内容: 我正在尝试将切片和切片结合起来。如何在Go中执行此操作? 我试过了: 但得到: 但是,文档似乎表明这是可能的,我想念的是什么? 问题答案: 在第二个切片之后添加点: 就像任何其他可变参数函数一样。

  • 问题内容: 有简单的解决方案,可通过串联两个或java 。由于是经常使用的。是否有任何简单的方法来连接两个? 这是我的想法: 它可以工作,但实际上可以转换为,然后再次转换回。 问题答案: 您可以使用协力让这件事没有任何自动装箱拆箱或完成。这是它的外观。 请注意,返回,然后将其与另一个串联,然后再收集到数组中。 这是输出。 [1、34、3、1、5]

  • 我有一个两层神经网络的例子。第一层接受两个参数并有一个输出。第二个应作为第一层的结果使用一个参数和一个附加参数。应该是这样的: 因此,我创建了一个具有两个层的模型,并尝试将它们合并,但它返回了一个错误:<代码>顺序模型中的第一层必须获得“input\u shape”或“batch\u input\u shape”参数 在线<代码>结果。添加(合并)。 型号:

  • 问题内容: 在Go中,TCP连接(net.Conn)是io.ReadWriteCloser。我想通过模拟TCP连接来测试我的网络代码。我有两个要求: 要读取的数据存储在字符串中 每当写入数据时,我都希望将其存储在某种缓冲区中,以便以后使用 是否有数据结构或简单的方法? 问题答案: 为什么不使用?它是一种并且具有获取存储数据的方法。如果需要将其设置为,则可以定义自己的类型: 并定义一个方法:

  • 问题内容: 如何在Java中连接两个数组? 问题答案: 使用Apache Commons Lang库 例如: 在Java 8中使用Stream: 或者像这样,使用flatMap: 为此,你必须使用反射:

  • 比如说,我有一个名为“Contact”的表,其中“first\u name”和“last\u name”作为列。基本上,“从联系人c中选择concat(c.firstname,,,c.lastname)作为全名”是我在hibernate中想要做的。 我可以将整个查询放在createQuery中,并获得所需的输出。但是,我不想在hibernate中执行sql查询。我在这里找到了一篇类似的帖子“我们可