mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
bufio: new Scanner interface
Add a new, simple interface for scanning (probably textual) data,
based on a new type called Scanner. It does its own internal buffering,
so should be plausibly efficient even without injecting a bufio.Reader.
The format of the input is defined by a "split function", by default
splitting into lines. Other implemented split functions include single
bytes, single runes, and space-separated words.
Here's the loop to scan stdin as a file of lines:
s := bufio.NewScanner(os.Stdin)
for s.Scan() {
fmt.Printf("%s\n", s.Bytes())
}
if s.Err() != nil {
log.Fatal(s.Err())
}
While we're dealing with spaces, define what space means to strings.Fields.
Fixes #4802.
R=adg, rogpeppe, bradfitz, rsc
CC=golang-dev
https://golang.org/cl/7322088
This commit is contained in:
parent
75e7308be8
commit
55ad7b9bfe
5 changed files with 738 additions and 2 deletions
|
|
@ -305,7 +305,8 @@ func SplitAfter(s, sep string) []string {
|
|||
}
|
||||
|
||||
// Fields splits the string s around each instance of one or more consecutive white space
|
||||
// characters, returning an array of substrings of s or an empty list if s contains only white space.
|
||||
// characters, as defined by unicode.IsSpace, returning an array of substrings of s or an
|
||||
// empty list if s contains only white space.
|
||||
func Fields(s string) []string {
|
||||
return FieldsFunc(s, unicode.IsSpace)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue