方法
struct User {
age int
}
fn (u User) can_register() bool {
return u.age > 16
}
user := User{age: 10}
println(user.can_register()) // ==> "false"
user2 := User{age: 20}
println(user2.can_register()) // ==> "true"
V语言没有类,但是可以基于类型定义方法。
方法是一种带有接收者参数的特殊函数。
接收者参数出现在fn关键字和方法名字之间,方法名之后也可以有普通的参数。
在上面的例子中,can_register方法有一个User类型的接收者参数u。V语言的习惯是不要用self或this这类名字作为接收者参数名,而是使用短小有意义的名字。