首页 > 文章列表 > 对类型值的操作应用

对类型值的操作应用

367 2024-02-09
问题内容

正如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 是强类型的,这意味着操作和方法在它们定义或标识的类型上工作。

例如,== 运算符指定用于整数类型,因此,== 运算符特定针对 intint32 的值、uint8