在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/GO  網(wǎng)絡(luò)安全/ go語言如何強(qiáng)制使用值復(fù)制的方式來賦值而不是僅僅讓指針指向同一個(gè)值

go語言如何強(qiáng)制使用值復(fù)制的方式來賦值而不是僅僅讓指針指向同一個(gè)值

把一個(gè)指針類型的變量賦值給一個(gè)新變量時(shí),只是傳了一個(gè)地址過去,兩個(gè)變量實(shí)際上指向同一個(gè)對(duì)象,改動(dòng)一個(gè)也就是兩個(gè)都改。

package main

import (
    "container/list"
    "fmt"
)

func main() {
    l1 := list.New() // *list.List
    l1.PushBack(1)
    fmt.Println(l1.Back().Value) // 1

    l2 := l1
    l2.PushBack(2)
    fmt.Println(l1.Back().Value, l2.Back().Value) // 2 2

    l1.PushBack(3)
    fmt.Println(l1.Back().Value, l2.Back().Value) // 3 3
}

有什么簡(jiǎn)單的寫法能讓指針類型的賦值像值類型的賦值那樣,把值復(fù)制一份再傳過去?

回答
編輯回答
情殺
package main

import (
    "container/list"
    "fmt"
)

func main() {
    l1 := list.New()
    l1.PushBack(1)
    fmt.Println(l1.Back().Value)

    l2 := *l1
    l2.PushBack(2)
    fmt.Println(l1.Back().Value, l2.Back().Value)
}

輸出

1
2 1
2018年8月7日 05:05