登录
首页 >  Golang >  Go问答

结构体中的io.Writer的使用方式

来源:stackoverflow

时间:2024-02-20 15:00:22 388浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《结构体中的io.Writer的使用方式》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

为什么当我尝试使用 write() 从 writer 进行写入时没有任何反应?

我正在尝试自己实现基本的 bufio 方法

package main

import (
    "io"
    "os"
)

type Writer struct {
    writer         io.Writer
    buferred_bytes []byte
}

func (w *Writer) Flush() {
    w.writer.Write(w.buferred_bytes)

    w.buferred_bytes = w.buferred_bytes[:0]
}

func (w *Writer) Write(data []byte) {
    for i := 0; i < len(data); i++ {
        if len(w.buferred_bytes) == cap(w.buferred_bytes) {
            w.Flush()
        }

        w.buferred_bytes = append(w.buferred_bytes, data[i])
    }
}

func NewWriter(writer_thread io.Writer, buffer_size int) *Writer {
    return &Writer{writer: writer_thread, buferred_bytes: make([]byte, 0, buffer_size)}
}

func main() {

    w := NewWriter(os.Stdin, 4)
    w.Write([]byte("Hello world my friend"))

}

我认为我应该使用指向 io.writer 的指针,但我不确定


正确答案


我发现一个问题。我使用 os.Stdin 代替 os.Stdout

到这里,我们也就讲完了《结构体中的io.Writer的使用方式》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>