bytes包實現了操做[]byte的經常使用函數。本包的函數和strings包的函數至關相似。前端
func Compare(a, b []byte) int
Compare函數返回一個整數表示兩個[]byte切片按字典序比較的結果(類同C的strcmp)。若是a==b返回0;若是a<b返回-1;不然返回+1。nil參數視爲空切片。git
func Equal(a, b []byte) bool
判斷兩個切片的內容是否徹底相同。github
func EqualFold(s, t []byte) bool
判斷兩個utf-8編碼切片(將unicode大寫、小寫、標題三種格式字符視爲相同)是否相同。golang
func Runes(s []byte) []rune
Runes函數返回和s等價的[]rune切片。(將utf-8編碼的unicode碼值分別寫入單個rune)後端
func HasPrefix(s, prefix []byte) bool
判斷s是否有前綴切片prefix。數組
func HasSuffix(s, suffix []byte) bool
判斷s是否有後綴切片suffix。app
func Contains(b, subslice []byte) bool
判斷切片b是否包含子切片subslice。函數
func Count(s, sep []byte) int
Count計算s中有多少個不重疊的sep子切片。ui
func Index(s, sep []byte) int
子切片sep在s中第一次出現的位置,不存在則返回-1。編碼
func IndexByte(s []byte, c byte) int
字符c在s中第一次出現的位置,不存在則返回-1。
func IndexRune(s []byte, r rune) int
unicode字符r的utf-8編碼在s中第一次出現的位置,不存在則返回-1。
func IndexAny(s []byte, chars string) int
字符串chars中的任一utf-8編碼在s中第一次出現的位置,如不存在或者chars爲空字符串則返回-1
func IndexFunc(s []byte, f func(r rune) bool) int
s中第一個知足函數f的位置i(該處的utf-8碼值r知足f(r)==true),不存在則返回-1
func LastIndex(s, sep []byte) int
切片sep在字符串s中最後一次出現的位置,不存在則返回-1。
func LastIndexAny(s []byte, chars string) int
字符串chars中的任一utf-8字符在s中最後一次出現的位置,如不存在或者chars爲空字符串則返回-1。
func LastIndexFunc(s []byte, f func(r rune) bool) int
s中最後一個知足函數f的unicode碼值的位置i,不存在則返回-1。
func Title(s []byte) []byte
返回s中每一個單詞的首字母都改成標題格式的拷貝。
BUG: Title用於劃分單詞的規則不能很好的處理Unicode標點符號。
func ToLower(s []byte) []byte
返回將全部字母都轉爲對應的小寫版本的拷貝。
func ToLowerSpecial(_case unicode.SpecialCase, s []byte) []byte
使用_case規定的字符映射,返回將全部字母都轉爲對應的小寫版本的拷貝。
func ToUpper(s []byte) []byte
返回將全部字母都轉爲對應的大寫版本的拷貝。
func ToUpperSpecial(_case unicode.SpecialCase, s []byte) []byte
使用_case規定的字符映射,返回將全部字母都轉爲對應的大寫版本的拷貝。
func ToTitle(s []byte) []byte
返回將全部字母都轉爲對應的標題版本的拷貝。
func ToTitleSpecial(_case unicode.SpecialCase, s []byte) []byte
使用_case規定的字符映射,返回將全部字母都轉爲對應的標題版本的拷貝。
func Repeat(b []byte, count int) []byte
返回count個b串聯造成的新的切片。
func Replace(s, old, new []byte, n int) []byte
返回將s中前n個不重疊old切片序列都替換爲new的新的切片拷貝,若是n<0會替換全部old子切片。
func Map(mapping func(r rune) rune, s []byte) []byte
將s的每個unicode碼值r都替換爲mapping(r),返回這些新碼值組成的切片拷貝。若是mapping返回一個負值,將會丟棄該碼值而不會被替換(返回值中對應位置將沒有碼值)。
func Trim(s []byte, cutset string) []byte
返回將s先後端全部cutset包含的unicode碼值都去掉的子切片。(共用底層數組)
func TrimSpace(s []byte) []byte
返回將s先後端全部空白(unicode.IsSpace指定)都去掉的子切片。(共用底層數組)
func TrimFunc(s []byte, f func(r rune) bool) []byte
返回將s先後端全部知足f的unicode碼值都去掉的子切片。(共用底層數組)
func TrimLeft(s []byte, cutset string) []byte
返回將s前端全部cutset包含的unicode碼值都去掉的子切片。(共用底層數組)
func TrimLeftFunc(s []byte, f func(r rune) bool) []byte
返回將s前端全部知足f的unicode碼值都去掉的子切片。(共用底層數組)
func TrimPrefix(s, prefix []byte) []byte
返回去除s可能的前綴prefix的子切片。(共用底層數組)
func TrimRight(s []byte, cutset string) []byte
返回將s後端全部cutset包含的unicode碼值都去掉的子切片。(共用底層數組)
func TrimRightFunc(s []byte, f func(r rune) bool) []byte
返回將s後端全部知足f的unicode碼值都去掉的子切片。(共用底層數組)
func TrimSuffix(s, suffix []byte) []byte
返回去除s可能的後綴suffix的子切片。(共用底層數組)
func Fields(s []byte) [][]byte
返回將字符串按照空白(unicode.IsSpace肯定,能夠是一到多個連續的空白字符)分割的多個子切片。若是字符串所有是空白或者是空字符串的話,會返回空切片。
func FieldsFunc(s []byte, f func(rune) bool) [][]byte
相似Fields,但使用函數f來肯定分割符(知足f的utf-8碼值)。若是字符串所有是分隔符或者是空字符串的話,會返回空切片。
func Split(s, sep []byte) [][]byte
用去掉s中出現的sep的方式進行分割,會分割到結尾,並返回生成的全部[]byte切片組成的切片(每個sep都會進行一次切割,即便兩個sep相鄰,也會進行兩次切割)。若是sep爲空字符,Split會將s切分紅每個unicode碼值一個[]byte切片。
func SplitN(s, sep []byte, n int) [][]byte
用去掉s中出現的sep的方式進行分割,會分割到最多n個子切片,並返回生成的全部[]byte切片組成的切片(每個sep都會進行一次切割,即便兩個sep相鄰,也會進行兩次切割)。若是sep爲空字符,Split會將s切分紅每個unicode碼值一個[]byte切片。參數n決定返回的切片的數目:
n > 0 : 返回的切片最多n個子字符串;最後一個子字符串包含未進行切割的部分。 n == 0: 返回nil n < 0 : 返回全部的子字符串組成的切片
func SplitAfter(s, sep []byte) [][]byte
用從s中出現的sep後面切斷的方式進行分割,會分割到結尾,並返回生成的全部[]byte切片組成的切片(每個sep都會進行一次切割,即便兩個sep相鄰,也會進行兩次切割)。若是sep爲空字符,Split會將s切分紅每個unicode碼值一個[]byte切片。
func SplitAfterN(s, sep []byte, n int) [][]byte
用從s中出現的sep後面切斷的方式進行分割,會分割到最多n個子切片,並返回生成的全部[]byte切片組成的切片(每個sep都會進行一次切割,即便兩個sep相鄰,也會進行兩次切割)。若是sep爲空字符,Split會將s切分紅每個unicode碼值一個[]byte切片。參數n決定返回的切片的數目:
n > 0 : 返回的切片最多n個子字符串;最後一個子字符串包含未進行切割的部分。 n == 0: 返回nil n < 0 : 返回全部的子字符串組成的切片
func Join(s [][]byte, sep []byte) []byte
將一系列[]byte切片鏈接爲一個[]byte切片,之間用sep來分隔,返回生成的新切片。