首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

goang-给type定于步骤,用Values和用Pointers的区别

2012-09-08 
goang-给type定于方法,用Values和用Pointers的区别其实effectiv go里面说的很清楚了?http://weekly.golang

goang-给type定于方法,用Values和用Pointers的区别

其实effectiv go里面说的很清楚了

?

http://weekly.golang.org/doc/effective_go.html#pointers_vs_values

?

我这里写了个例子,还是不明白的话,我在详细解释下

?

?

package mainimport "log"type PointerMethodInvoke struct{Foo string}func (this *PointerMethodInvoke) ChangeFoo(foo string){this.Foo = foolog.Println("change Foo,result is :",this.Foo)}type ValueMethodInvoke struct{Foo string}func (this ValueMethodInvoke) ChangeFoo(foo string){this.Foo = foolog.Println("change Foo,result is :",this.Foo)}func main() {pointerMethodInvoke := new(PointerMethodInvoke)pointerMethodInvoke.Foo = "foo"log.Println(pointerMethodInvoke.Foo)pointerMethodInvoke.ChangeFoo("bar")log.Println(pointerMethodInvoke.Foo)valueMethodInvoke := new(ValueMethodInvoke)valueMethodInvoke.Foo = "foo"log.Println(valueMethodInvoke.Foo)valueMethodInvoke.ChangeFoo("bar")log.Println(valueMethodInvoke.Foo)}

?

?

输出:

?

2011/12/16 15:03:48 foo

2011/12/16 15:03:48 change Foo,result is : bar

2011/12/16 15:03:48 bar

2011/12/16 15:03:48 foo

2011/12/16 15:03:48 change Foo,result is : bar

2011/12/16 15:03:48 foo

热点排行