拷貝分爲兩種方式,一種是引用拷貝(指針拷貝),一種是對象拷貝
引用拷貝:和對象拷貝的不同之處在於,引用拷貝只會生成一個新的對象引用地址,但兩個地址其最終指向的還是同一個對象
對象拷貝:這種方式會重新生成一個新的對象,生成的新對象與原來的對象沒有任何關聯
而對象拷貝又分爲 淺拷貝 和 深拷貝
下面分別說一下 Java 和 Go 的 拷貝:
引用拷貝(指針拷貝):
java:
User user1 = new User();
User user2 = user1;
go:
golang 裏的 引用(指針)拷貝 是 通過 指針賦值
var c3 *User = &User{age: 13}
var c4 *User = c3
對象拷貝:
1.淺拷貝:
java:
User user1 = new User();
User user2 = (User)user1.clone();
go:
var c3 User = User{age: 13}
var c4 User = c3
2.深拷貝:
java:
go: