本文介绍了它是否具有非接口称为“* er”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

指出:

bufio.io 包包含:

  // Reader为io.Reader对象实现缓冲。 
类型Reader结构{
buf []字节
rd io.Reader
r,w int
err错误
lastByte int
lastRuneSize int

它是否具有像* er这样的结构?特别是在这种情况下,它是一个 struct ,与 io.Reader 是同一个接口。

解决方案

评论很重要:

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

既然 bufio.Reader 没有添加任何新服务,但只是以缓冲方式实现 io.Reader ,保留名称并仅实现函数是有意义的:a struct 就足够了。

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


The "Effective Go" states:

bufio.io package contains this:

// 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
}

Is it idiomatic having structs named like "*er"? Especially in this case it's a struct with the same name as io.Reader which is an interface.

解决方案

The comment type bufio.Reader struct are important:

// Reader implements buffering for an io.Reader object.

The bufio packages adds:

Since bufio.Reader isn't there to add any new service, but only to implements an io.Reader in a buffered way, it makes sense to keep the name and just implement the functions: a struct is enough.

For the user's point of view, it is a Reader that he/she can uses wherever an io.Reader is required.

这篇关于它是否具有非接口称为“* er”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 13:50