gpt4 book ai didi

types - 为什么Go的io包中没有RuneWriter接口(interface)?

转载 作者:IT王子 更新时间:2023-10-29 01:51:24 24 4
gpt4 key购买 nike

Go's io package包含(除其他外)以下接口(interface):

type ByteReader interface {
ReadByte() (c byte, err error)
}

type ByteScanner interface {
ByteReader
UnreadByte() error
}

type ByteWriter interface {
WriteByte(c byte) error
}

type RuneReader interface {
ReadRune() (r rune, size int, err error)
}

type RuneScanner interface {
RuneReader
UnreadRune() error
}

但是没有RuneWriter接口(interface):

type RuneWriter interface {
WriteRune(r rune) (size int, err error)
}

是否有 RuneWriter 丢失的原因?

最佳答案

Go 作者根据需要定义接口(interface)。它们没有为了填充可能方法的网格而定义接口(interface)。此策略有助于使标准库保持小而简单。

我认为他们的结论是几乎不需要 RuneWriter 接口(interface),因为他们在标准包或他们维护的其他包中不需要它。

在 Go 团队之外没有对接口(interface)的需求。问题跟踪器、邮件列表或 irc channel 的可用历史记录上没有对接口(interface)的请求。

问题中引用的其他接口(interface)在标准包或Go作者维护的其他包中使用。

您可以在自己的包或代码中定义接口(interface)。这是一个非常有用的功能,在某种程度上是 Go 所独有的。

关于types - 为什么Go的io包中没有RuneWriter接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com