對(duì)于兩個(gè)相同類(lèi)型的變量,可以使用 *a = *b 替換指針值package mainimport ( "log")type s1 struct { id int}func (s *s1) replace(s2 *s1) { *s = *s2}func test(s *s1, s2 *s1) { s.replace(s2)}func main() { s := &s1{1} s2 := &s1{2} log.Println(s, s2) test(s, s2) log.Println(s, s2)}結(jié)果是2015/04/09 16:57:00 &{1} &{2}2015/04/09 16:57:00 &{2} &{2}對(duì)于不同類(lèi)型但相同接口的兩個(gè)變量,是否可以實(shí)現(xiàn)相同的目標(biāo)?package mainimport ( "log")type i interface { replace(s2 i)}type s1 struct { id int}func (s *s1) replace(s2 i) { *s = *s2}type s2 struct { id float64}func (s *s2) replace(s2 i) { *s = *s2}func test(s i, s2 i) { s.replace(s2)}func main() { s := &s1{1} s2 := &s2{2.0} log.Println(s, s2) test(s, s2) log.Println(s, s2)}這不編譯./test.go:16: invalid indirect of s2 (type i)./test.go:24: invalid indirect of s2 (type i)
- 2 回答
- 0 關(guān)注
- 281 瀏覽
添加回答
舉報(bào)
0/150
提交
取消