import "bytes"
バイトスライスを操作するための関数を実装しています。stringsパッケージの機能に類似しています。
パッケージファイル
buffer.go bytes.go bytes_decl.go
定数
MinReadは、Buffer.ReadFromを呼び出したときにReadに渡されるスライスサイズの最小値です。rの内容を保持するために必要なサイズよりMinReadが大きいときは、ReadFromは管理するバッファを拡張しません。
const MinRead = 512
Add関数
func Add(s, t []byte) []byte
Addは、sの末尾にtの内容を追加した結果を返します。sに十分なキャパシティがあるときは追加しますが、そうでなければ新しい配列が割り当てられ返されます。
AddByte関数
func AddByte(s []byte, t byte) []byte
AddByteは、sの末尾にtを追加した結果を返します。sに十分なキャパシティがあるときは追加しますが、そうでなければ新しい配列が割り当てられ返されます。
Compare関数
func Compare(a, b []byte) int
Compareは、2つのバイト配列を辞書的に比較して比較結果を整数で返します。a==bのときは0、a < bの場合は-1、a > bの場合は+1を返します。
Count関数
func Count(s, sep []byte) int
Countは、s内のsepの重複しない個数をカウントします。
Equal関数
func Equal(a, b []byte) bool
Equalは、a == bであるかどうかを論理値で返します。
Fields関数
func Fields(s []byte) [][]byte
Fieldsは、配列sをひとつ以上の連続したホワイトスペースで分割し、sの部分配列であるスライスのリストを返します。sにホワイトスペースしか含まれていないときは空リストを返します。
FieldsFunc関数
func FieldsFunc(s []byte, f func(int) bool) [][]byte
FieldsFuncは、sをUTF-8エンコードされたUnicodeコードポイントの連続として扱います。この関数は、配列sをf(c)がtrueを返す(cは、Unicodeコードポイント)位置で文字列sを分割し、sの部分配列のスライスを返します。f(c)がtrueを返すようなコードポイントがs内になかったときは空のスライスが返されます。
HasPrefix関数
func HasPrefix(s, prefix []byte) bool
HasPrefixは、バイト配列sの先頭部分がバイト配列prefixと一致するかをテストします。
HasSuffix関数
func HasSuffix(s, suffix []byte) bool
HasSuffixは、バイト配列sの末尾部分がバイト配列suffixと一致するかをテストします。
Index関数
func Index(s, sep []byte) int
Indexは、s内でsepが最初に出現する箇所のインデックスを返します。一致しないときは-1を返します。
IndexAny関数
func IndexAny(s []byte, chars string) int
IndexAnyは、sをUTF-8エンコードされたUnicodeコードポイントとして解釈します。この関数は、chars内のUnicodeコードポイントのどれかがs内に最初に出現した位置のバイトインデックスを返します。charsが空であるか、共通するコードポイントがなかったときは-1を返します。
IndexByte関数
func IndexByte(s []byte, c byte) int
IndexByteは、s内でcが最初に出現する箇所のインデックスを返します。一致しないときは-1を返します。
IndexFunc関数
func IndexFunc(s []byte, f func(r int) bool) int
IndexFuncは、sをUTF-8エンコードされたUnicodeコードポイントの連続として扱います。この関数は、s内でf(c)がtrueを返す、最初のUnicodeコードポイントのバイトインデックスを返します。該当するものがなければ、-1を返します。
IndexRune関数
func IndexRune(s []byte, rune int) int
IndexRuneは、sをUTF-8エンコードされたUnicodeコードポイントの連続として扱います。この関数は、s内でUnicodeコードポイントruneが最初に出現する箇所のバイトインデックスを返します。s内にruneがないときは-1を返します。
Join関数
func Join(a [][]byte, sep []byte) []byte
Joinは、パラメータa内の要素を結合して、新たなバイト配列を作成します。sepで指定したセパレータが結合時に要素間に挿入されます。
LastIndex関数
func LastIndex(s, sep []byte) int
LastIndexは、s内でsepが最後に出現する箇所のインデックスを返します。一致しないときは-1を返します。
LastIndexFunc関数
func LastIndexFunc(s []byte, f func(r int) bool) int
LastIndexFuncは、sをUTF-8エンコードされたUnicodeコードポイントの連続として扱います。この関数は、s内でf(c)がtrueを返す、最後のUnicodeコードポイントのバイトインデックスを返します。該当するものがなければ、-1を返します。
Map関数
func Map(mapping func(rune int) int, s []byte) []byte
Mapは、バイト配列s内の全ての文字をマッピング関数によって変換し、その結果を新たなバイト配列として返します。マッピング関数がマイナス値を返したときは、その要素は置き換えられることなく破棄されます。s内の文字および出力は、UTF-8エンコードされたUnicodeコードポイントとして解釈されます。
Repeat関数
func Repeat(b []byte, count int) []byte
Repeatは、パラメータbのバイト配列をパラメータcountで指定した回数コピーした新しいバイトスライスを返します。
Replace関数
func Replace(s, old, new []byte, n int) []byte
Replaceは、スライスsのコピーに対し、最初のn個、oldの部分をnewに置換(重複はなし)したものを返します。n < 0のとき、置換数は無制限になります。
Runes関数
func Runes(s []byte) []int
Runesは、sと等価であるルーン(Unicodeコードポイント)のスライスを返します。
Split関数
func Split(s, sep []byte, n int) [][]byte
Splitは、sをsepを区切りとして部分スライスへスライスし、セパレータ間の部分スライスのスライスを返します。sepが空のとき、SplitはUTF-8シーケンス毎に分割を行います。nは、返される部分スライスの数を決定します。
n > 0: 最大n個の部分スライス。
最後の部分スライスには、分割されなかった残りが含まれる。
n == 0: 結果は、nil。(部分スライスなし)
n < 0: すべての部分スライス。
SplitAfter関数
func SplitAfter(s, sep []byte, n int) [][]byte
SplitAfterは、sの中でsepが現れた箇所の直後でスライスを行い、これら部分スライスのスライスを返します。sepが空のとき、SplitAfterは、UTF-8シーケンス毎に分割を行います。nは、返される部分文字列の数を決定します。
n > 0: 最大n個の部分スライス。
最後の部分スライスには、分割されなかった残りが含まれる。
n == 0: 結果は、nil。(部分スライスなし)
n < 0: すべての部分スライス。
ToLower関数
func ToLower(s []byte) []byte
ToLowerは、バイト配列sをUnicodeの小文字にマッピングしたコピーを返します。
ToLowerSpecial関数
func ToLowerSpecial(_case unicode.SpecialCase, s []byte) []byte
ToLowerSpecialは、バイト配列sのコピーに対し、与えたSpecialCaseのルールを優先的に使い、すべてのUnicode文字を小文字にマッピングしたものを返します。
ToTitle関数
func ToTitle(s []byte) []byte
ToTitleは、バイト配列sをUnicodeのタイトルケースにマッピングしたコピーを返します。
ToTitleSpecial関数
func ToTitleSpecial(_case unicode.SpecialCase, s []byte) []byte
ToTitleSpecialは、バイト配列sのコピーに対し、与えたSpecialCaseのルールを優先的に使い、すべてのUnicode文字をタイトルケースにマッピングしたものを返します。
ToUpper関数
func ToUpper(s []byte) []byte
ToUpperは、バイト配列sをUnicodeの大文字にマッピングしたコピーを返します。
ToUpperSpecial関数
func ToUpperSpecial(_case unicode.SpecialCase, s []byte) []byte
ToUpperSpecialは、バイト配列sのコピーに対し、与えたSpecialCaseのルールを優先的に使い、すべてのUnicode文字を大文字にマッピングしたものを返します。
Trim関数
func Trim(s []byte, cutset string) []byte
Trimは、sの先頭と末尾からcutsetに含まれるUTF-8エンコードされたUnicodeコードポイントをすべて除外したサブスライスを返します。
TrimFunc関数
func TrimFunc(s []byte, f func(r int) bool) []byte
TrimFuncは、sの先頭と末尾からf(c)を満たすUTF-8エンコードされたUnicodeコードポイントcをすべて除外したサブスライスを返します。
TrimLeft関数
func TrimLeft(s []byte, cutset string) []byte
TrimLeftは、sの先頭からcutsetに含まれるUTF-8エンコードされたUnicodeコードポイントをすべて除外したサブスライスを返します。
TrimLeftFunc関数
func TrimLeftFunc(s []byte, f func(r int) bool) []byte
TrimLeftFuncは、sの先頭からf(c)を満たすUTF-8エンコードされたUnicodeコードポイントcをすべて除外したサブスライスを返します。
TrimRight関数
func TrimRight(s []byte, cutset string) []byte
TrimRightは、sの末尾からcutsetに含まれるUTF-8エンコードされたUnicodeコードポイントをすべて除外したサブスライスを返します。
TrimRightFunc関数
func TrimRightFunc(s []byte, f func(r int) bool) []byte
TrimRightFuncは、sの末尾からf(c)を満たすUTF-8エンコードされたUnicodeコードポイントcをすべて除外したサブスライスを返します。
TrimSpace関数
func TrimSpace(s []byte) []byte
TrimSpaceは、sの先頭と末尾からUnicodeで定義されているホワイトスペースを除外したサブスライスを返します。
Buffer型
Bufferは、ReadとWrite関数を備えた可変サイズバッファです。ゼロ値のBufferは空のバッファでそのまま使用可能です。
type Buffer struct {
// contains unexported fields
}
NewBuffer関数
func NewBuffer(buf []byte) *Buffer
NewBufferは、bufの内容を初期値とする新しいBufferの作成および初期化を行います。これは既存のデータを読むためのBufferを得るために使いますが、内部バッファのサイズ内であれば書き込みに使用することもできます。そうするためには、bufの長さは0でも構いませんが必要なキャパシティを持っていなければなりません。
NewBufferString関数
func NewBufferString(s string) *Buffer
NewBufferStringは、文字列sの内容を初期値とする新しいBufferの作成および初期化を行います。これは既存のデータを読むためのBufferを得るために使いますが、内部バッファのサイズ内であれば書き込みに使用することもできます。そうするために は、bufの長さは0でも構いませんが必要なキャパシティを持っていなければなりません。
(*Buffer) Bytes関数
func (b *Buffer) Bytes() []byte
Bytesは、バッファ内でまだ読み出されていない部分の内容を返します。(len(b.Bytes()) == b.Len()) 返されたスライスの内容を呼び出し側で変えると、Buffer内のメソッドを呼び出さなくてもバッファの内容が変更されます。
(*Buffer) Len関数
func (b *Buffer) Len() int
Lenは、バッファ内でまだ読み出されていない部分のバイト数を返します。(b.Len() == len(b.Bytes()))
(*Buffer) Next関数
func (b *Buffer) Next(n int) []byte
Nextは、バッファ内の次のnバイトを含んでいるスライスを返します。このとき、そのバイトデータがReadメソッドによって返されたかのようにバッファを進めます。バッファの残りが、nバイト未満のとき、この関数はバッファ全体を返します。また返されるスライスは次にreadまたはwriteメソッドを呼び出すまでの間しか有効でありません。
(*Buffer) Read関数
func (b *Buffer) Read(p []byte) (n int, err os.Error)
Readは、バッファから次のlen(p)バイトまたはバッファの最後まで読み込みます。戻り値nは読み込んだバイト数です。バッファに返すデータが存在しないときはlen(p)が0であってもerrはos.EOFとなり、それ以外のときはnilとなります。
(*Buffer) ReadByte関数
func (b *Buffer) ReadByte() (c byte, err os.Error)
ReadByteは、バッファから次のバイトを読み込んで返します。次のバイトが存在しないときはos.EOFエラーを返します。
(*Buffer) ReadFrom関数
func (b *Buffer) ReadFrom(r io.Reader) (n int64, err os.Error)
ReadFromは、rからEOFまでデータを読み込んでバッファに追加します。戻り値nは読み込まれたバイト数です。読み込み中に起きたos.EOF以外のエラーがエラーとして返されます。
(*Buffer) ReadRune関数
func (b *Buffer) ReadRune() (r int, size int, err os.Error)
ReadRuneは、バッファから次のUTF-8エンコードされているUnicodeコードポイントを読み込んで返します。読み込むバイトデータがないときはos.EOFエラーが返されます。バイトデータが誤ったUTF-8エンコードであるときは1バイトスキップしてU+FFFD, 1を返します。
(*Buffer) Reset関数
func (b *Buffer) Reset()
Resetは、バッファをリセットし内容を持たない状態にします。b.Reset()とb.Truncate(0)は同じです。
(*Buffer) String関数
func (b *Buffer) String() string
Stringは、バッファ内でまだ読み出されていない部分の内容を文字列として返します。Bufferがnilポインタのとき、”<nil>”を返します。
(*Buffer) Truncate関数
func (b *Buffer) Truncate(n int)
Truncateは、バッファ内でまだ読み出されていない部分の先頭からnバイトを破棄します。n > b.Len()のときb.Truncate(n)を呼び出すとエラーとなります。
(*Buffer) Write関数
func (b *Buffer) Write(p []byte) (n int, err os.Error)
Writeは、バッファにpの内容を追加します。戻り値nはpの長さ、errは常にnilです。
(*Buffer) WriteByte
func (b *Buffer) WriteByte(c byte) os.Error
WriteByteは、バッファにバイトcを追加します。返されるエラーは常にnilですが、bufio.Write型のWriteByte関数に合わせてあります。
(*Buffer) WriteRune関数
func (b *Buffer) WriteRune(r int) (n int, err os.Error)
WriteRuneは、バッファにUTF-8エンコードされているUnicodeコードポイントrを追加し、長さとエラー情報を返します。返されるエラーは常にnilですが、bufio.Write型のWriteRune関数に合わせてあります。
(*Buffer) WriteString関数
func (b *Buffer) WriteString(s string) (n int, err os.Error)
WriteStringは、バッファにsの内容を追加します。戻り値nはsの長さ、errは常にnilです。
(*Buffer) WriteTo関数
func (b *Buffer) WriteTo(w io.Writer) (n int64, err os.Error)
WriteToは、バッファが空になるかエラーが発生するまでwにデータを書きこみます。戻り値nは書き込まれたバイト数です。発生したすべてのエラーがそのまま返されます。
バグ
Titleで使用している単語の協会は、Unicodeの句読点を正しく取り扱いません。
Trackback URL
Comments