正如go规范中提到的:
“类型确定一组值以及特定于这些值的操作和方法。”
引入要应用于类型的值的操作或方法,
该操作应用于值(取自一组)是否应该给出来自同一组的结果(或值)?
例如,在下面的代码中,findname()
不应该是 user
类型上的方法。相反,findname()
应该是一个辅助函数。
type user struct { name string email string age int } func (u user) findElder(other user) user { if u.age >= other.age { return u } return other } func (u user) findName() string { return u.name }
“特定于这些值的操作和方法”并不意味着它们对于这些值是唯一的,也不意味着它们导致值。
根据 Google 的说法,“特定”是指“明确定义或确定”。在 Go 规范的这段引用中,使用“特定”一词是为了说明 Go 是强类型的,这意味着操作和方法在它们定义或标识的类型上工作。
例如,==
运算符指定用于整数类型,因此,==
运算符特定针对 int
、int32
的值、uint8
等