Go 使用非接口like是惯用的说法吗*呃",;
各国: 按照惯例,一个方法接口由方法名加上 一个-er后缀或类似的修饰语来构造一个代理名词: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
读卡器
,写卡器
,格式化程序
,关闭通知程序
等
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中有一个缓冲读取器。