import "bytes"

バイトスライスを操作するための関数を実装しています。stringsパッケージの機能に類似しています。

パッケージファイル

buffer.go bytes.go bytes_decl.go

定数

MinReadは、Buffer.ReadFromを呼び出したときにReadに渡されるスライスサイズの最小値です。rの内容を保持するために必要なサイズよりMinReadが大きいときは、ReadFromは管理するバッファを拡張しません。

const MinRead = 512

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を返します。

LastIndexAny関数

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

LastIndexAnyは、sをUTF-8エンコードされたUnicodeコードポイントの連続として扱います。この関数は、chars内のUnicodeコードポイントのどれかが、s内で最後に現れた位置のバイトインデックスを返します。charsが空であるか、双方に共通するコードポイントが見つからなければ、-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) UnreadByte関数

func (b *Buffer) UnreadByte() os.Error

UnreadByteは、直前の読み込み操作で返された最終バイトを未読み込み状態にします。最後の読み込み後に書き込みが発生したときは、UnreadByteはエラーを返します。

(*Buffer) UnreadRune関数

func (b *Buffer) UnreadRune() os.Error

UnreadRuneは、ReadRuneから返された最後のルーンを未読み込み状態にします。このbufferの直前の操作がReadRune以外の読み書きのとき、UnreadRuneはエラーを返します。(これは、どの読み込み操作からでも読み戻せるUnreadByteのようにするには難しいためです。)

(*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の句読点を正しく取り扱いません。