|
|
@@ -139,7 +139,7 @@ func (t time.Time) first3Chars() string {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-类型在在其他的,或是非本地的包里定义,在它上面定义方法都会得到和上面同样的错误。
|
|
|
+类型在其他的,或是非本地的包里定义,在它上面定义方法都会得到和上面同样的错误。
|
|
|
|
|
|
但是有一个间接的方式:可以先定义该类型(比如:int 或 float)的别名类型,然后再为别名类型定义方法。或者像下面这样将它作为匿名类型嵌入在一个新的结构体中。当然方法只在这个别名类型上有效。
|
|
|
|
|
|
@@ -198,7 +198,7 @@ First 3 chars: Mon
|
|
|
|
|
|
如果想要方法改变接收者的数据,就在接收者的指针类型上定义该方法。否则,就在普通的值类型上定义方法。
|
|
|
|
|
|
-下面的例子 `pointer_value.go` 作了说明:`change()`接受一个指向 B 的指针,并改变它内部的成员;`write()` 接受通过拷贝接受 B 的值并只输出B的内容。注意 Go 为我们做了探测工作,我们自己并没有指出是是否在指针上调用方法,Go 替我们做了这些事情。b1 是值而 b2 是指针,方法都支持运行了。
|
|
|
+下面的例子 `pointer_value.go` 作了说明:`change()`接受一个指向 B 的指针,并改变它内部的成员;`write()` 接受通过拷贝接受 B 的值并只输出B的内容。注意 Go 为我们做了探测工作,我们自己并没有指出是否在指针上调用方法,Go 替我们做了这些事情。b1 是值而 b2 是指针,方法都支持运行了。
|
|
|
|
|
|
示例 10.13 pointer_value.go:
|
|
|
|