方法(Methods)


struct User {
	age int
}
 
fn (u User) can_register() bool {
	return u.age > 16
}
 
fn main() {
	user := User{age: 10}
	println(user.can_register()) // ==> "false"  
 
	user2 := User{age: 20}
	println(user2.can_register()) // ==> "true"  
}

V语言中没有类的概念,但是你可以在结构体 struct 上定义方法(Methods)。

方法(Methods)是具有特殊接收器参数的函数。接收器出现在 fn关键字和方法名称之间的参数列表中(和Go语言类似)。

在上面的示例中,can_register方法具有名为 uUser结构体的接收器。不是使用像 selfthis这样的名称,而是使用短名称,最好是所属结构体名称的首字母小写。