这个功能怎么回事?

时间:2018-01-19 15:19:41

标签: function go

我无法理解Equal(u T)bool发生的事情。它是函数中的方法吗?还有一个方法和一个功能的区别。我知道这个函数接受T类型的t并且如果t = u则返回true或false。

 type T int 
 func (t T) Equal (u T) bool {return t==u}

1 个答案:

答案 0 :(得分:2)

这是一个method declaration,由于Go中的方法只是带有接收器的函数,因此使用关键字func声明它们。

func (t T) Equal (u T) bool {return t==u}
1     2 3  4      5 6  7     8
  1. 用于声明函数和方法的关键字。
  2. 方法接收者的标识符,使用此方法可以访问方法体内的接收者。
  3. 方法接收者的类型。
  4. 方法的名称。
  5. 方法参数的名称,使用此方法可以访问方法体内的参数。
  6. 方法参数的类型。
  7. 方法参数的返回类型。
  8. 方法的主体。
  9. 为了进行比较,执行相同操作的函数将被声明为:

    func Equal (t T, u T) bool {return t==u}
    

    (没有接收者,但有两个参数)