Golang中的Interface(接口)

EriolSoong ·
关于( 仅仅改变了第25行代码,编译完美通过并成功执行。 但是,有个问题,虽然 Rect 没有实现 Perimeter,但是s.Perimeter()* 调用没有报错,这也是我不理解的一个地方,有哪位大侠知道的话,请指教一二。) 个人认为,是因为var s Shape = r 动态转换以后是一种“r的副本”,并不是r,指针为方法接收的时候要具备修改接收者的能力,s并不具备修改r的能力,你用r去调用这个接口实现是没有问题的,因此只能用 var s Shape = &r去调用,即使Rect只实现了Perimeter,但是s是具备与r相同的值的,所以是可行的 希望有大佬指出以上拙见有没有错
#1