为了账号安全,请及时绑定邮箱和手机立即绑定

将 golang 中的指针值 *a = *b 替换为接口

将 golang 中的指针值 *a = *b 替换为接口

Go
芜湖不芜 2021-09-27 20:34:38
对于两个相同类型的变量,可以使用 *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)}结果是2015/04/09 16:57:00 &{1} &{2}2015/04/09 16:57:00 &{2} &{2}对于不同类型但相同接口的两个变量,是否可以实现相同的目标?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 回答

  • 2 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信