Go 使用非接口like是惯用的说法吗*呃",;

Go 使用非接口like是惯用的说法吗*呃",;,go,Go,各国: 按照惯例,一个方法接口由方法名加上 一个-er后缀或类似的修饰语来构造一个代理名词: 读卡器,写卡器,格式化程序,关闭通知程序等 bufio.io包包含以下内容: // Reader implements buffering for an io.Reader object. type Reader struct { buf []byte rd io.Reader r, w int err

各国:

按照惯例,一个方法接口由方法名加上 一个-er后缀或类似的修饰语来构造一个代理名词:
读卡器
写卡器
格式化程序
关闭通知程序

bufio.io
包包含以下内容:

// Reader implements buffering for an io.Reader object.
type Reader struct {
    buf          []byte
    rd           io.Reader
    r, w         int
    err          error
    lastByte     int
    lastRuneSize int
}

将结构命名为“*er”是惯用说法吗?特别是在这种情况下,它是一个
struct
,与
io.Reader
同名,是一个接口。

如果它不在有效的Go或规范中,那么这是一个意见问题,真的,我会说只要它有意义就好

bufio.Reader
bytes.Reader
为例,这样命名非常合理。

注释很重要:

//
Reader
io.Reader
对象实现缓冲

委员会:

包装一个or对象,创建另一个对象(
读卡器
写卡器
,该对象也实现了接口,但为文本I/O提供了缓冲和一些帮助

由于
bufio.Reader
不是用来添加任何新服务的,而只是用来以缓冲方式实现
io.Reader
,因此保留名称并只实现功能是有意义的:一个
struct
就足够了


从用户的角度来看,它是一个
读取器
,他/她可以在需要io.读取器的任何地方使用。

我从来没有读过任何建议将带有一个方法的
结构
命名为以
-er
结尾的内容。也许在使用
bufio.io
包的情况下,该名称是正确的选择,因为它很简单而且有意义。。。但我不认为这是必须的,我个人认为这会让人困惑。顺便说一句,stdlib中有一个缓冲读取器。