By convention, one-method interfaces are named by the method name plus an -er suffix or similar modification to construct an agent noun:
Reader
,Writer
,Formatter
,CloseNotifier
etc.
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”是惯用的吗?特别是在这种情况下,它是一个与 io.Reader
同名的 struct
,它是一个接口(interface)。
最佳答案
如果它不在 Effective Go 或规范中,那么这真的是一个见仁见智的问题,我会说只要它有意义就可以。
以 bufio.Reader
或 bytes.Reader
为例,以这种方式命名它们非常有意义。
关于go - 将非接口(interface)称为 "*er"是惯用的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24536157/