Package bytes

import "bytes"
Overview
Index
Examples

Overview ▾

包字节实现用于操作字节片的功能. 它类似于字符串包的功能.

Index ▾

Constants
Variables
func Compare(a, b []byte) int
func Contains(b, subslice []byte) bool
func ContainsAny(b []byte, chars string) bool
func ContainsRune(b []byte, r rune) bool
func Count(s, sep []byte) int
func Equal(a, b []byte) bool
func EqualFold(s, t []byte) bool
func Fields(s []byte) [][]byte
func FieldsFunc(s []byte, f func(rune) bool) [][]byte
func HasPrefix(s, prefix []byte) bool
func HasSuffix(s, suffix []byte) bool
func Index(s, sep []byte) int
func IndexAny(s []byte, chars string) int
func IndexByte(b []byte, c byte) int
func IndexFunc(s []byte, f func(r rune) bool) int
func IndexRune(s []byte, r rune) int
func Join(s [][]byte, sep []byte) []byte
func LastIndex(s, sep []byte) int
func LastIndexAny(s []byte, chars string) int
func LastIndexByte(s []byte, c byte) int
func LastIndexFunc(s []byte, f func(r rune) bool) int
func Map(mapping func(r rune) rune, s []byte) []byte
func Repeat(b []byte, count int) []byte
func Replace(s, old, new []byte, n int) []byte
func ReplaceAll(s, old, new []byte) []byte
func Runes(s []byte) []rune
func Split(s, sep []byte) [][]byte
func SplitAfter(s, sep []byte) [][]byte
func SplitAfterN(s, sep []byte, n int) [][]byte
func SplitN(s, sep []byte, n int) [][]byte
func Title(s []byte) []byte
func ToLower(s []byte) []byte
func ToLowerSpecial(c unicode.SpecialCase, s []byte) []byte
func ToTitle(s []byte) []byte
func ToTitleSpecial(c unicode.SpecialCase, s []byte) []byte
func ToUpper(s []byte) []byte
func ToUpperSpecial(c unicode.SpecialCase, s []byte) []byte
func ToValidUTF8(s, replacement []byte) []byte
func Trim(s []byte, cutset string) []byte
func TrimFunc(s []byte, f func(r rune) bool) []byte
func TrimLeft(s []byte, cutset string) []byte
func TrimLeftFunc(s []byte, f func(r rune) bool) []byte
func TrimPrefix(s, prefix []byte) []byte
func TrimRight(s []byte, cutset string) []byte
func TrimRightFunc(s []byte, f func(r rune) bool) []byte
func TrimSpace(s []byte) []byte
func TrimSuffix(s, suffix []byte) []byte
type Buffer
    func NewBuffer(buf []byte) *Buffer
    func NewBufferString(s string) *Buffer
    func (b *Buffer) Bytes() []byte
    func (b *Buffer) Cap() int
    func (b *Buffer) Grow(n int)
    func (b *Buffer) Len() int
    func (b *Buffer) Next(n int) []byte
    func (b *Buffer) Read(p []byte) (n int, err error)
    func (b *Buffer) ReadByte() (byte, error)
    func (b *Buffer) ReadBytes(delim byte) (line []byte, err error)
    func (b *Buffer) ReadFrom(r io.Reader) (n int64, err error)
    func (b *Buffer) ReadRune() (r rune, size int, err error)
    func (b *Buffer) ReadString(delim byte) (line string, err error)
    func (b *Buffer) Reset()
    func (b *Buffer) String() string
    func (b *Buffer) Truncate(n int)
    func (b *Buffer) UnreadByte() error
    func (b *Buffer) UnreadRune() error
    func (b *Buffer) Write(p []byte) (n int, err error)
    func (b *Buffer) WriteByte(c byte) error
    func (b *Buffer) WriteRune(r rune) (n int, err error)
    func (b *Buffer) WriteString(s string) (n int, err error)
    func (b *Buffer) WriteTo(w io.Writer) (n int64, err error)
type Reader
    func NewReader(b []byte) *Reader
    func (r *Reader) Len() int
    func (r *Reader) Read(b []byte) (n int, err error)
    func (r *Reader) ReadAt(b []byte, off int64) (n int, err error)
    func (r *Reader) ReadByte() (byte, error)
    func (r *Reader) ReadRune() (ch rune, size int, err error)
    func (r *Reader) Reset(b []byte)
    func (r *Reader) Seek(offset int64, whence int) (int64, error)
    func (r *Reader) Size() int64
    func (r *Reader) UnreadByte() error
    func (r *Reader) UnreadRune() error
    func (r *Reader) WriteTo(w io.Writer) (n int64, err error)
Bugs

Package files

buffer.go bytes.go reader.go

Constants

MinRead是Buffer.ReadFrom传递给Read调用的最小切片大小. 只要缓冲区的MinRead字节至少超出保留r的内容所需的字节,ReadFrom就不会增长底层缓冲区.

const MinRead = 512

Variables

如果无法分配内存以将数据存储在缓冲区中,则会将ErrTooLarge传递为紧急状态.

var ErrTooLarge = errors.New("bytes.Buffer: too large")

func Compare

func Compare(a, b []byte) int

Compare返回按字典顺序比较两个字节片的整数. 如果a == b,结果将为0;如果a <b,结果将为-1;如果a> b,结果将为+1. nil参数等效于一个空切片.

Example

func Contains

func Contains(b, subslice []byte) bool

包含报告子切片是否在b之内.

Example

true
false
true
true

func ContainsAny 1.7

func ContainsAny(b []byte, chars string) bool

ContainsAny报告char中任何UTF-8编码的代码点是否在b之内.

Example

true
true
false
false

func ContainsRune 1.7

func ContainsRune(b []byte, r rune) bool

ContainsRune报告该符文是否包含在UTF-8编码的字节片b中.

Example

true
false
true
true
false

func Count

func Count(s, sep []byte) int

Count对s中的sep的非重叠实例进行计数. 如果sep是空片,则Count返回1 +以s为单位的UTF-8编码的代码点数.

Example

3
5

func Equal

func Equal(a, b []byte) bool

相等报告a和b是否长度相同且包含相同字节. nil参数等效于一个空切片.

Example

true
false

func EqualFold

func EqualFold(s, t []byte) bool

EqualFold报告在Unicode大小写折叠下,被解释为UTF-8字符串的s和t是否相等.

Example

true

func Fields

func Fields(s []byte) [][]byte

字段将s解释为UTF-8编码的代码点的序列. 按照unicode.IsSpace的定义,它将片段s围绕一个或多个连续的空白字符的每个实例进行拆分.IsSpace,返回s的子片段的片段;如果s仅包含空格,则返回空片段.

Example

Fields are: ["foo" "bar" "baz"]

func FieldsFunc

func FieldsFunc(s []byte, f func(rune) bool) [][]byte

FieldsFunc将s解释为UTF-8编码的代码点的序列. 它将在满足f(c)的每个代码点c处分割切片s,并返回s的子切片的切片. 如果s中的所有代码点都满足f(c)或len(s)== 0,则返回一个空切片. FieldsFunc不保证其调用f(c)的顺序. 如果f对于给定的c没有返回一致的结果,则FieldsFunc可能会崩溃.

Example

Fields are: ["foo1" "bar2" "baz3"]

func HasPrefix

func HasPrefix(s, prefix []byte) bool

HasPrefix测试字节片s是否以前缀开头.

Example

true
false
true

func HasSuffix

func HasSuffix(s, suffix []byte) bool

HasSuffix测试字节片s是否以后缀结尾.

Example

true
false
false
true

func Index

func Index(s, sep []byte) int

Index返回s中sep的第一个实例的索引;如果s中不存在sep,则返回-1.

Example

4
-1

func IndexAny

func IndexAny(s []byte, chars string) int

IndexAny将s解释为UTF-8编码的Unicode代码点的序列. 它返回char中任何Unicode码点中s中第一次出现的字节索引. 如果char为空或没有共同的代码点,则返回-1.

Example

2
-1

func IndexByte

func IndexByte(b []byte, c byte) int

IndexByte返回b中c的第一个实例的索引;如果b中不存在c,则返回-1.

Example

4
-1

func IndexFunc

func IndexFunc(s []byte, f func(r rune) bool) int

IndexFunc将s解释为UTF-8编码的代码点的序列. 它返回满足f(c)的第一个Unicode代码点的s中的字节索引,如果没有,则返回-1.

Example

7
-1

func IndexRune

func IndexRune(s []byte, r rune) int

IndexRune将s解释为UTF-8编码的代码点的序列. 它返回给定符文中s中第一次出现的字节索引. 如果s中不存在符文,则返回-1. 如果r为utf8.RuneError,它将返回任何无效UTF-8字节序列的第一个实例.

Example

4
-1

func Join

func Join(s [][]byte, sep []byte) []byte

Join将s的元素连接起来以创建一个新的字节片. 分隔符sep放置在所得切片中的元素之间.

Example

foo, bar, baz

func LastIndex

func LastIndex(s, sep []byte) int

LastIndex返回s中sep的最后一个实例的索引;如果s中不存在sep,则返回-1.

Example

0
3
-1

func LastIndexAny

func LastIndexAny(s []byte, chars string) int

LastIndexAny将s解释为UTF-8编码的Unicode代码点的序列. 它返回char中任何Unicode码点中s中最后一次出现的字节索引. 如果char为空或没有共同的代码点,则返回-1.

Example

5
3
-1

func LastIndexByte 1.5

func LastIndexByte(s []byte, c byte) int

LastIndexByte returns the index of the last instance of c in s, or -1 if c is not present in s.

Example

3
8
-1

func LastIndexFunc

func LastIndexFunc(s []byte, f func(r rune) bool) int

LastIndexFunc将s解释为UTF-8编码的代码点的序列. 它返回满足f(c)的最后一个Unicode代码点的s中的字节索引,如果没有,则返回-1.

Example

8
9
-1

func Map

func Map(mapping func(r rune) rune, s []byte) []byte

Map返回字节片s的副本,其所有字符都根据映射函数进行了修改. 如果映射返回负值,则将字符从字节片中丢弃,并且不进行替换. s中的字符和输出被解释为UTF-8编码的代码点.

Example

'Gjnf oevyyvt naq gur fyvgul tbcure...

func Repeat

func Repeat(b []byte, count int) []byte

重复返回由b的计数副本组成的新字节片.

如果count为负或(len(b)* count)的结果溢出,它会感到恐慌.

Example

banana

func Replace

func Replace(s, old, new []byte, n int) []byte

Replace将返回slice的副本,其中有old的前n个非重叠实例被new取代. 如果old为空,则它在切片的开头和每个UTF-8序列之后匹配,最多可产生k个符文切片的k + 1个替换. 如果n <0,则替换次数没有限制.

Example

oinky oinky oink
moo moo moo

func ReplaceAll 1.12

func ReplaceAll(s, old, new []byte) []byte

ReplaceAll返回slice的副本,其中所有旧的非重叠实例都被new替换. 如果old为空,则它在切片的开头和每个UTF-8序列之后匹配,最多可产生k个符文切片的k + 1个替换.

Example

moo moo moo

func Runes

func Runes(s []byte) []rune

符文将s解释为UTF-8编码的代码点的序列. 它返回相当于s的一部分符文(Unicode代码点).

Example

U+0067 'g'
U+006F 'o'
U+0020 ' '
U+0067 'g'
U+006F 'o'
U+0070 'p'
U+0068 'h'
U+0065 'e'
U+0072 'r'

func Split

func Split(s, sep []byte) [][]byte

将片段s分割为所有由sep分隔的子片段,并返回这些分隔符之间的子片段的片段. 如果sep为空,则Split在每个UTF-8序列之后拆分. 它等效于SplitN,计数为-1.

Example

["a" "b" "c"]
["" "man " "plan " "canal panama"]
[" " "x" "y" "z" " "]
[""]

func SplitAfter

func SplitAfter(s, sep []byte) [][]byte

SplitAfter在sep的每个实例之后将s切片为所有子切片,并返回这些子切片的切片. 如果sep为空,则SplitAfter在每个UTF-8序列之后拆分. 它等效于SplitAfterN,计数为-1.

Example

["a," "b," "c"]

func SplitAfterN

func SplitAfterN(s, sep []byte, n int) [][]byte

在Sep的每个实例之后,SplitAfterN将s切片为子切片,并返回这些子切片的切片. 如果sep为空,则SplitAfterN在每个UTF-8序列之后拆分. 该计数确定要返回的子切片数:

n > 0: at most n subslices; the last subslice will be the unsplit remainder.
n == 0: the result is nil (zero subslices)
n < 0: all subslices

Example

["a," "b,c"]

func SplitN

func SplitN(s, sep []byte, n int) [][]byte

将SplitS的s切片成由sep分隔的子切片,并返回这些分隔符之间的子切片的切片. 如果sep为空,则SplitN在每个UTF-8序列之后分割. 该计数确定要返回的子切片数:

n > 0: at most n subslices; the last subslice will be the unsplit remainder.
n == 0: the result is nil (zero subslices)
n < 0: all subslices

Example

["a" "b,c"]
[] (nil = true)

func Title

func Title(s []byte) []byte

Title将s视为UTF-8编码的字节,并返回一个包含所有Unicode字母的副本,该副本以单词开头的所有Unicode字母映射到其标题大小写.

BUG(rsc):标题用于单词边界的规则不能正确处理Unicode标点.

Example

Her Royal Highness

func ToLower

func ToLower(s []byte) []byte

ToLower返回字节片s的副本,其中所有Unicode字母都映射到它们的小写字母.

Example

gopher

func ToLowerSpecial

func ToLowerSpecial(c unicode.SpecialCase, s []byte) []byte

ToLowerSpecial将s视为UTF-8编码的字节,并返回一个副本,其中所有Unicode字母均映射为小写字母,并优先使用特殊的大小写规则.

Example

Original : AHOJ VÝVOJÁRİ GOLANG
ToLower : ahoj vývojári golang

func ToTitle

func ToTitle(s []byte) []byte

ToTitle将s视为UTF-8编码的字节,并返回一个副本,其中所有Unicode字母都映射到其标题大小写.

Example

LOUD NOISES
ХЛЕБ

func ToTitleSpecial

func ToTitleSpecial(c unicode.SpecialCase, s []byte) []byte

ToTitleSpecial将s视为UTF-8编码的字节,并返回一个副本,其中所有Unicode字母均映射到其标题大小写,并优先使用特殊的大小写规则.

Example

Original : ahoj vývojári golang
ToTitle : AHOJ VÝVOJÁRİ GOLANG

func ToUpper

func ToUpper(s []byte) []byte

ToUpper返回字节片s的副本,其中所有Unicode字母都映射到其大写字母.

Example

GOPHER

func ToUpperSpecial

func ToUpperSpecial(c unicode.SpecialCase, s []byte) []byte

ToUpperSpecial将s视为UTF-8编码的字节,并返回一个副本,其中所有Unicode字母均映射为它们的大写字母,优先考虑特殊的大小写规则.

Example

Original : ahoj vývojári golang
ToUpper : AHOJ VÝVOJÁRİ GOLANG

func ToValidUTF8 1.13

func ToValidUTF8(s, replacement []byte) []byte

ToValidUTF8将s视为UTF-8编码的字节,并返回一个副本,其中每次运行的字节均表示无效的UTF-8,并替换为替换的字节,该字节可以为空.

func Trim

func Trim(s []byte, cutset string) []byte

Trim returns a subslice of s by slicing off all leading and trailing UTF-8-encoded code points contained in cutset.

Example

["Achtung! Achtung"]

func TrimFunc

func TrimFunc(s []byte, f func(r rune) bool) []byte

TrimFunc通过分割满足f(c)的所有前导和尾随UTF-8编码的代码点c来返回s的子片段.

Example

-gopher!
"go-gopher!"
go-gopher
go-gopher!

func TrimLeft

func TrimLeft(s []byte, cutset string) []byte

TrimLeft通过切出cutset中包含的所有前导UTF-8编码的代码点来返回s的子片段.

Example

gopher8257

func TrimLeftFunc

func TrimLeftFunc(s []byte, f func(r rune) bool) []byte

TrimLeftFunc将s视为UTF-8编码的字节,并通过分割满足f(c)的所有前导UTF-8编码的代码点c来返回s的子片段.

Example

-gopher
go-gopher!
go-gopher!567

func TrimPrefix 1.1

func TrimPrefix(s, prefix []byte) []byte

TrimPrefix returns s without the provided leading prefix string. If s doesn't start with prefix, s is returned unchanged.

Example

Hello, world!

func TrimRight

func TrimRight(s []byte, cutset string) []byte

TrimRight通过切掉cutset中包含的所有尾随UTF-8编码的代码点来返回s的子片段.

Example

453gopher

func TrimRightFunc

func TrimRightFunc(s []byte, f func(r rune) bool) []byte

TrimRightFunc通过分割满足f(c)的所有尾随UTF-8编码的代码点c来返回s的子片段.

Example

go-
go-gopher
1234go-gopher!

func TrimSpace

func TrimSpace(s []byte) []byte

TrimSpace通过切掉Unicode定义的所有前导和尾随空格来返回s的子片段.

Example

a lone gopher

func TrimSuffix 1.1

func TrimSuffix(s, suffix []byte) []byte

TrimSuffix返回s,但不提供结尾的后缀字符串. 如果s不以后缀结尾,则s保持不变.

Example

Hello, world!

type Buffer

Buffer是具有Read和Write方法的可变大小的字节缓冲区. Buffer的零值是准备使用的空缓冲区.

type Buffer struct {
    // contains filtered or unexported fields
}

Example

Hello world!

示例(读者)

Gophers rule!

func NewBuffer

func NewBuffer(buf []byte) *Buffer

NewBuffer使用buf作为其初始内容创建并初始化一个新的Buffer. 新的Buffer拥有buf的所有权,并且在此调用之后,调用方不应使用buf. NewBuffer旨在准备一个Buffer以读取现有数据. 它也可以用来设置用于写入的内部缓冲区的初始大小. 为此,buf应该具有所需的容量,但长度为零.

在大多数情况下,new(Buffer)(或仅声明一个Buffer变量)足以初始化Buffer.

func NewBufferString

func NewBufferString(s string) *Buffer

NewBufferString使用字符串s作为其初始内容创建并初始化一个新的Buffer. 目的是准备一个缓冲区以读取现有的字符串.

在大多数情况下,new(Buffer)(或仅声明一个Buffer变量)足以初始化Buffer.

func (*Buffer) Bytes

func (b *Buffer) Bytes() []byte

字节返回长度为b.Len()的切片,其中包含缓冲区的未读部分. 该片仅在下一次修改缓冲区之前有效(即,仅在下一次调用诸如Read,Write,Reset或Truncate之类的方法之前)才有效. 切片至少在下一次缓冲区修改之前就将缓冲区内容作为别名,因此对切片的立即更改将影响将来读取的结果.

func (*Buffer) Cap 1.5

func (b *Buffer) Cap() int

Cap返回缓冲区底层字节片的容量,即为缓冲区数据分配的总空间.

func (*Buffer) Grow 1.1

func (b *Buffer) Grow(n int)

如有必要,可以增加缓冲区的容量,以保证另外n个字节的空间. 在Grow(n)之后,至少可以将n个字节写入缓冲区,而无需进行其他分配. 如果n为负,则增长会惊慌. 如果缓冲区无法增长,则会因ErrTooLarge感到恐慌.

Example

"64 bytes or fewer"

func (*Buffer) Len

func (b *Buffer) Len() int

Len返回缓冲区未读部分的字节数; b.Len()== len(b.Bytes()).

Example

5

func (*Buffer) Next

func (b *Buffer) Next(n int) []byte

Next返回一个包含缓冲区中接下来的n个字节的切片,使缓冲区前进,就好像该字节已由Read返回. 如果缓冲区中的字节数少于n个,则Next返回整个缓冲区. 切片仅在下一次调用read或write方法之前才有效.

func (*Buffer) Read

func (b *Buffer) Read(p []byte) (n int, err error)

读取从缓冲区中读取下一个len(p)字节,或者直到缓冲区耗尽为止. 返回值n是读取的字节数. 如果缓冲区没有数据要返回,则err为io.EOF(除非len(p)为零);否则为. 否则为零.

func (*Buffer) ReadByte

func (b *Buffer) ReadByte() (byte, error)

ReadByte读取并从缓冲区返回下一个字节. 如果没有可用的字节,则返回错误io.EOF.

func (*Buffer) ReadBytes

func (b *Buffer) ReadBytes(delim byte) (line []byte, err error)

ReadBytes读取直到输入中第一次出现delim为止,并返回一个切片,该切片包含直到定界符(包括定界符)的数据. 如果ReadBytes在找到定界符之前遇到错误,它将返回错误之前读取的数据和错误本身(通常为io.EOF). 当且仅当返回的数据未以delim结尾时,ReadBytes返回err!= nil.

func (*Buffer) ReadFrom

func (b *Buffer) ReadFrom(r io.Reader) (n int64, err error)

ReadFrom从r读取数据,直到EOF并将其附加到缓冲区,然后根据需要增大缓冲区. 返回值n是读取的字节数. 读取期间遇到的除io.EOF以外的任何错误也将返回. 如果缓冲区太大,ReadFrom会因ErrTooLarge感到恐慌.

func (*Buffer) ReadRune

func (b *Buffer) ReadRune() (r rune, size int, err error)

ReadRune从缓冲区读取并返回下一个UTF-8编码的Unicode代码点. 如果没有可用的字节,则返回的错误是io.EOF. 如果字节是错误的UTF-8编码,则它消耗一个字节并返回U + FFFD,1.

func (*Buffer) ReadString

func (b *Buffer) ReadString(delim byte) (line string, err error)

ReadString读取直到输入中第一次出现delim为止,并返回一个字符串,其中包含直到定界符(包括定界符)的数据. 如果ReadString在找到定界符之前遇到错误,它将返回错误之前读取的数据和错误本身(通常为io.EOF). 当且仅当返回的数据未以delim结尾时,ReadString才返回err!= nil.

func (*Buffer) Reset

func (b *Buffer) Reset()

重置会将缓冲区重置为空,但会保留基础存储以供将来的写操作使用. 重置与Truncate(0)相同.

func (*Buffer) String

func (b *Buffer) String() string

字符串以字符串形式返回缓冲区未读部分的内容. 如果Buffer是nil指针,则返回" <nil>".

要更有效地构建字符串,请参见strings.Builder类型.

func (*Buffer) Truncate

func (b *Buffer) Truncate(n int)

截断会丢弃缓冲区中除前n个未读取字节以外的所有字节,但会继续使用相同的已分配存储. 如果n为负数或大于缓冲区的长度,则会发生恐慌.

func (*Buffer) UnreadByte

func (b *Buffer) UnreadByte() error

UnreadByte不读取最近成功读取至少一个字节的读取操作返回的最后一个字节. 如果自上次读取以来发生了写操作,或者如果上一次读取返回错误,或者读取的读取字节为零,则UnreadByte返回错误.

func (*Buffer) UnreadRune

func (b *Buffer) UnreadRune() error

UnreadRune取消读取ReadRune返回的最后一个符文. 如果对缓冲区的最新读取或写入操作未成功执行ReadRune,则UnreadRune返回错误. (在这方面,它比UnreadByte严格,它将从任何读取操作中读取最后一个字节.)

func (*Buffer) Write

func (b *Buffer) Write(p []byte) (n int, err error)

写操作会将p的内容附加到缓冲区,并根据需要扩展缓冲区. 返回值n是p的长度; 错误始终为零. 如果缓冲区太大,则Write会因ErrTooLarge感到恐慌.

func (*Buffer) WriteByte

func (b *Buffer) WriteByte(c byte) error

WriteByte将字节c附加到缓冲区,根据需要增大缓冲区. 返回的错误始终为nil,但包含该错误以匹配bufio.Writer的WriteByte. 如果缓冲区太大,WriteByte会因ErrTooLarge感到恐慌.

func (*Buffer) WriteRune

func (b *Buffer) WriteRune(r rune) (n int, err error)

WriteRune将Unicode代码点r的UTF-8编码追加到缓冲区,返回其长度和错误,该错误始终为nil,但包含在其中以匹配bufio.Writer的WriteRune. 缓冲区根据需要增长; 如果太大,WriteRune将对ErrTooLarge感到恐慌.

func (*Buffer) WriteString

func (b *Buffer) WriteString(s string) (n int, err error)

WriteString将s的内容附加到缓冲区,根据需要增大缓冲区. 返回值n是s的长度; 错误始终为零. 如果缓冲区太大,WriteString将对ErrTooLarge感到恐慌.

func (*Buffer) WriteTo

func (b *Buffer) WriteTo(w io.Writer) (n int64, err error)

WriteTo将数据写入w,直到缓冲区耗尽或发生错误. 返回值n是写入的字节数. 它始终适合int,但与io.WriterTo接口匹配为int64. 写入期间遇到的任何错误也将返回.

type Reader

Reader通过读取字节片来实现io.Reader,io.ReaderAt,io.WriterTo,io.Seeker,io.ByteScanner和io.RuneScanner接口. 与Buffer不同,Reader是只读的,并支持查找. Reader的零值的操作类似于空切片的Reader.

type Reader struct {
    // contains filtered or unexported fields
}

func NewReader

func NewReader(b []byte) *Reader

NewReader从b返回一个新的Reader读数.

func (*Reader) Len

func (r *Reader) Len() int

Len returns the number of bytes of the unread portion of the slice.

Example

3
16

func (*Reader) Read

func (r *Reader) Read(b []byte) (n int, err error)

Read实现io.Reader接口.

func (*Reader) ReadAt

func (r *Reader) ReadAt(b []byte, off int64) (n int, err error)

ReadAt实现io.ReaderAt接口.

func (*Reader) ReadByte

func (r *Reader) ReadByte() (byte, error)

ReadByte实现io.ByteReader接口.

func (*Reader) ReadRune

func (r *Reader) ReadRune() (ch rune, size int, err error)

ReadRune实现io.RuneReader接口.

func (*Reader) Reset 1.7

func (r *Reader) Reset(b []byte)

Reset resets the Reader to be reading from b.

func (*Reader) Seek

func (r *Reader) Seek(offset int64, whence int) (int64, error)

Seek实现io.Seeker接口.

func (*Reader) Size 1.5

func (r *Reader) Size() int64

Size返回基础字节片的原始长度. 大小是可通过ReadAt读取的字节数. 返回的值始终相同,并且不受任何其他方法的调用影响.

func (*Reader) UnreadByte

func (r *Reader) UnreadByte() error

UnreadByte在实现io.ByteScanner接口时对ReadByte进行了补充.

func (*Reader) UnreadRune

func (r *Reader) UnreadRune() error

UnreadRune在实现io.RuneScanner接口方面对ReadRune进行了补充.

func (*Reader) WriteTo 1.1

func (r *Reader) WriteTo(w io.Writer) (n int64, err error)

WriteTo实现io.WriterTo接口.

Bugs

by  ICOPY.SITE