V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Ossi

请教一下这句代码的作用

  •  
  •   Ossi · Jun 21, 2022 · 1685 views
    This topic created in 1418 days ago, the information mentioned may be changed or developed.

    components 是一个参数,类型是[]string ,不知道第四行代码的作用是干啥的。。 求教一下

    1	if len(components) == 0 {
    2 	  components = []string{":" + verb}
    3	} else {
    4 	  components = append([]string{}, components...)
    5  	 components[len(components)-1] += ":" + verb
    6	}
    
    Ritter
        1
    Ritter  
       Jun 21, 2022
    deep copy 么
    molly2mollyzyz
        2
    molly2mollyzyz  
       Jun 21, 2022
    拷贝对象?
    ikw
        3
    ikw  
       Jun 21, 2022   ❤️ 1
    得结合上下文,目测是为了复制出来一份 components ,以免影响到函数调用方的 components
    Ossi
        4
    Ossi  
    OP
       Jun 21, 2022
    @zwpaper 感谢,没往这方面想
    ikw
        5
    ikw  
       Jun 21, 2022
    但是我还有点疑惑,下面是还会给 components 增加内容吗?为啥不用 copy ?
    Ossi
        6
    Ossi  
    OP
       Jun 21, 2022
    @zwpaper 下面有很多读取 components 的操作,应该是为了不影响读取吧
    https://stackoverflow.com/questions/27055626/concisely-deep-copy-a-slice
    ikw
        7
    ikw  
       Jun 21, 2022
    copy 也不影响读取,看你发的 so 的 benchmark ,append 性能不输 copy ,append 代码会简洁些,也许是这个考虑
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3051 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 14:14 · PVG 22:14 · LAX 07:14 · JFK 10:14
    ♥ Do have faith in what you're doing.