方法

1. struct User {
2. age int
3. }

5. fn (u User) can_register() bool {
6. return u.age > 16
7. }

9. user := User{age: 10}
10. println(user.can_register()) // ==> "false"

12. user2 := User{age: 20}
13. println(user2.can_register()) // ==> "true"

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

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

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

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