Go 方法接收器采用一个类型以及该类型的变量名称,例如:type MyFloat float64func (x MyFloat) Abs() float64 { if x < 0 { return float64(-x) } return float64(x)}func main() { f := MyFloat(-math.Sqrt2) fmt.Println(f.Abs())}接收器采用"x"与该类型接收所述方法沿着。叫什么名字“X”的意义。因为我能够调用的方法上MyFloat的任何实例(不只是在命名为X的一个),为什么我一定要指定x?由于接收器是一种类型或一个类型的引用,为什么不干脆把类型或单独指针像这样func (MyFloat) Abs() float64 { if this < 0 { return float64(-this) } return float64(this)}我的假设是this在 Java 中 golang 允许任何名称而不是允许任何名称?是这样吗 ?
2 回答
www说
TA贡献1775条经验 获得超8个赞
这是一个设计选择。
Java的使用this,围棋琅选择其他机械师。
在去,这是合法的,使接收器的指针或没有。
让我们来看看:
func (t Type) Id() { return t }
func (t *Type) IdPointer() { return t }
如果去使用Java的设计?
这将成为:
func (Type) Id() { return this }
func (*Type) IdPointer() { return this }
首先,它是迷茫的是什么(*Type)是。
其次,这也可以是指针或值。也是一头雾水。
但是,无论如何,您可以像这样设计 Go-lang。
毕竟是一种选择。
- 2 回答
- 0 关注
- 181 浏览
添加回答
举报
0/150
提交
取消