What's the difference between a buffio.Scanner and a text/scanner.Scanner?

huangapple go评论85阅读模式
英文:

What's the difference between a buffio.Scanner and a text/scanner.Scanner?

问题

scanner.Scannerbufio.Scanner 之间有什么区别?

scanner.Scanner 是在 text/scanner 包中定义的。它提供了一个用于扫描文本的简单接口。它可以将输入文本分解为标记(token),并提供了一些方法来获取和处理这些标记。

bufio.Scanner 是在 bufio 包中定义的。它也提供了一个用于扫描文本的接口,但它的功能更加强大。它可以从输入源中读取文本,并将其分解为标记。与 scanner.Scanner 不同的是,bufio.Scanner 还提供了一些额外的功能,如缓冲读取和自定义分隔符。

总的来说,scanner.Scanner 是一个简单的文本扫描器,而bufio.Scanner 则提供了更多的功能和灵活性。具体使用哪个取决于你的需求和偏好。

英文:

What's the difference between scanner.Scanner from package text/scanner,
and a bufio.Scanner?

答案1

得分: 4

text/scanner 更适用于读取源代码,主要是 Go 语言的源代码:

默认情况下,Scanner 会跳过空白字符和 Go 语言注释,并将所有字面量识别为 Go 语言规范中定义的内容。它可以被定制为仅识别其中的一部分字面量,并识别不同的空白字符。

英文:

text/scanner is more optimized for reading source code, mostly Go source:

> By default, a Scanner skips white space and Go comments and recognizes
> all literals as defined by the Go language specification
. It may be
> customized to recognize only a subset of those literals and to
> recognize different white space characters.

答案2

得分: -3

文档似乎解释得很清楚。

text/scanner

Scanner实现了从io.Reader读取Unicode字符和标记的功能。

bufio

Scanner提供了一个方便的接口,用于读取数据,例如以换行符分隔的文本行文件。

英文:

The documentation seems to explain pretty clearly.

text/scanner

> A Scanner implements reading of Unicode characters and tokens from an
> io.Reader

bufio

> Scanner provides a convenient interface for reading data such as a
> file of newline-delimited lines of text.

huangapple
  • 本文由 发表于 2014年8月2日 05:54:27
  • 转载请务必保留本文链接:https://go.coder-hub.com/25089238.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定