标签: append

附加到具有相同基础数组的两个切片,为什么会产生结果?

这是一些 Go 书籍中的代码片段。

func incr(s []int) {
    s = append(s, 0)
    for i := range s {
        s[i]++
    }
}

func main() {
    s1 := []int{1, 2}
    s2 := s1
    s2 = append(s2, 3)

    incr(s1)
    incr(s2)

    fmt.Print(s1, s2) // "[1, 2][2, 3, 4]"
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么结果是“[1, 2][2, 3, 4]”。

基于https://golang.org/doc/ effective_go#slices 中的两点:

切片保存对基础数组的引用,如果将一个切片分配给另一个切片,则两个切片都引用同一个数组

如果函数采用切片参数,则调用者可以看到它对切片元素所做的更改,类似于将指针传递给底层数组

这是我想象应该发生的事情:

  1. 首先,s1 和 s2 都有相同的底层数组 [1, 2]
  2. 将 3 追加到 s2 后,底层数组变为 [1, 2, 3]。但 s1 仍然只看到 [1, 2]
  3. 之后incr(s1),s1 被追加 0,所有项递增,结果 s1 变为 [2, …

append go slice

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

将新项目添加到列表中

如何将字符串附加到字符串列表中,尤其是列表中的特定字符串?

例如:

myList = ['apples', 'oranges', 'bananas']

newString = 'peach'
Run Code Online (Sandbox Code Playgroud)

我想将newString追加到myList的索引1('oranges')(以便newString出现在myList中的索引1之后.)我将如何去做?

python list append python-2.7

-3
推荐指数
1
解决办法
177
查看次数

C++附加到数组

const int fileLength = fileContent.length();
    char test[1000];
    for (int p = 0; p < fileLength; ++p){
        test[p].append(fileContent[p]); // Error: expression must have class type
    };
Run Code Online (Sandbox Code Playgroud)

我试图将文本文件的字符附加到我创建的数组中.虽然我收到错误"表达式必须具有类类型".尝试谷歌搜索此错误无济于事.

c++ append

-3
推荐指数
1
解决办法
817
查看次数

在python中使用for循环将浮点数附加到列表

我正在尝试将每月温度列表添加到一个包含 24 个月温度的大列表中。问题是它们以浮点数形式给出,但要附加项目,它们必须是整数。

temperatures = []
np.array(temperatures, dtype = np.float32)
Run Code Online (Sandbox Code Playgroud)

(在我的第一个月之后,我将我的值附加到下个月的大列表温度和空的 TEMP1 中)

for item in TEMP1:    
      np.insert(temperatures, TEMP1[item])
Run Code Online (Sandbox Code Playgroud)

错误消息是:

File "/home/piscopo/Bureau/EC/Alert_extraction.py", line 87, in <module>
np.insert(temperatures, TEMP1[item])

TypeError: list indices must be integers, not numpy.float32
Run Code Online (Sandbox Code Playgroud)

谢谢

python list append

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

字符串需要双引号VBA现在混淆了哪些引号是什么

我需要将一个字符串附加到一个文本文件中,该文件中包含双引号.我怎么做到这一点导致VBA目前非常困惑

字符串应该说/将文本文件附加到(加载"c:\ test.lsp")?

vba append quotation-marks

-4
推荐指数
1
解决办法
2590
查看次数

Golang:附加切片或没有分配

append()当给定切片的容量不足时,Go的功能仅分配新的切片数据(另请参阅:https://stackoverflow.com/a/28143457/802833).这可能导致意外行为(至少对我来说是一个golang新手):

package main

import (
    "fmt"
)

func main() {

    a1 := make([][]int, 3)
    a2 := make([][]int, 3)
    b := [][]int{{1, 1, 1}, {2, 2, 2}, {3, 3, 3}}
    common1 := make([]int, 0)
    common2 := make([]int, 0, 12) // provide sufficient capacity
    common1 = append(common1, []int{10, 20}...)
    common2 = append(common2, []int{10, 20}...)

    idx := 0
    for _, k := range b {
        a1[idx] = append(common1, k...) // new slice is allocated
        a2[idx] = append(common2, k...) …
Run Code Online (Sandbox Code Playgroud)

append go slice

-4
推荐指数
1
解决办法
1983
查看次数

创建元素时奇怪的jQuery错误

看看这个

var q = $('<div> test 1 </div>');

$('body').append(q);

q = $('<div> test 2 </div>');
Run Code Online (Sandbox Code Playgroud)

页面打印"测试1"!! 为什么?

javascript jquery append

-5
推荐指数
1
解决办法
42
查看次数

将内容附加到嵌套结构中不起作用

我有两个这样的嵌套结构:

type Block struct {
    ID       string
    Contents []string
}

type Package struct {
    Name   string
    Blocks []Block
}
Run Code Online (Sandbox Code Playgroud)

p当我尝试在特定块中附加新内容时,原始包 ( ) 不会更改。

for _, b := range p.Blocks {
    if b.ID == "B1" {
        fmt.Println("Adding a new content")
        b.Contents = append(b.Contents, "c3")
    }
}
Run Code Online (Sandbox Code Playgroud)

例子:

https://play.golang.org/p/5hm6RjPFk8o

struct append go slice

-5
推荐指数
1
解决办法
45
查看次数

标签 统计

append ×8

go ×3

slice ×3

list ×2

python ×2

c++ ×1

javascript ×1

jquery ×1

python-2.7 ×1

quotation-marks ×1

struct ×1

vba ×1