方法

  1. struct User {
  2. age int
  3. }
  4. fn (u User) can_register() bool {
  5. return u.age > 16
  6. }
  7. user := User{age: 10}
  8. println(user.can_register()) // ==> "false"
  9. user2 := User{age: 20}
  10. println(user2.can_register()) // ==> "true"

V语言没有类,但是可以基于类型定义方法。

方法是一种带有接收者参数的特殊函数。

接收者参数出现在fn关键字和方法名字之间,方法名之后也可以有普通的参数。

在上面的例子中,can_register方法有一个User类型的接收者参数u。V语言的习惯是不要用self或this这类名字作为接收者参数名,而是使用短小有意义的名字。