go語言復制一個struct 對象


 

 

 

-----------------

package main

import (
  "log"
)

type meta struct {
  name string
  age int
}
func (m *meta) copy(dest *meta) {
  *dest = *m
}
func main() {
  a := meta{name:"aaaaaaa", age:123}
  log.Println(a)
  var b meta
  a.copy(&b)
  b.name="fly"
  b.age = 77
  log.Println("b:", b)
  log.Println("a:", a)
}

  其實,struct 對象直接賦值給其它變量,就可以了。賦值時,為值拷貝。

 

 

 

package main

import (
"log"
)

type meta struct {
name string
age int
}
func (m *meta) copy(dest *meta) {
*dest = *m
}
func main() {
a := meta{name:"aaaaaaa", age:123}
log.Println(a)
var b meta
a.copy(&b)
b.name="fly"
b.age = 77

c := a
c.name = "zzz"
c.age = 9

log.Println("b:", b)
log.Println("a:", a)
log.Println("c:", c)
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM