Go基礎篇【第8篇】: 內置庫模塊 bytes [一]

bytes包實現了操做[]byte的經常使用函數。本包的函數和strings包的函數至關相似。前端

func Compare

func Compare(a, b []byte) int

Compare函數返回一個整數表示兩個[]byte切片按字典序比較的結果(類同C的strcmp)。若是a==b返回0;若是a<b返回-1;不然返回+1。nil參數視爲空切片。git

func Equal

func Equal(a, b []byte) bool

判斷兩個切片的內容是否徹底相同。github

func EqualFold

func EqualFold(s, t []byte) bool

判斷兩個utf-8編碼切片(將unicode大寫、小寫、標題三種格式字符視爲相同)是否相同。golang

func Runes

func Runes(s []byte) []rune

Runes函數返回和s等價的[]rune切片。(將utf-8編碼的unicode碼值分別寫入單個rune)後端

func HasPrefix

func HasPrefix(s, prefix []byte) bool

判斷s是否有前綴切片prefix。數組

func HasSuffix

func HasSuffix(s, suffix []byte) bool

判斷s是否有後綴切片suffix。app

func Contains

func Contains(b, subslice []byte) bool

判斷切片b是否包含子切片subslice。函數

func Count

func Count(s, sep []byte) int

Count計算s中有多少個不重疊的sep子切片。ui

func Index

func Index(s, sep []byte) int

子切片sep在s中第一次出現的位置,不存在則返回-1。編碼

func IndexByte

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

字符c在s中第一次出現的位置,不存在則返回-1。

func IndexRune

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

unicode字符r的utf-8編碼在s中第一次出現的位置,不存在則返回-1。

func IndexAny

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

字符串chars中的任一utf-8編碼在s中第一次出現的位置,如不存在或者chars爲空字符串則返回-1

func IndexFunc

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

s中第一個知足函數f的位置i(該處的utf-8碼值r知足f(r)==true),不存在則返回-1

func LastIndex

func LastIndex(s, sep []byte) int

切片sep在字符串s中最後一次出現的位置,不存在則返回-1。

func LastIndexAny

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

字符串chars中的任一utf-8字符在s中最後一次出現的位置,如不存在或者chars爲空字符串則返回-1。

func LastIndexFunc

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

s中最後一個知足函數f的unicode碼值的位置i,不存在則返回-1。

func Title

func Title(s []byte) []byte

返回s中每一個單詞的首字母都改成標題格式的拷貝。

BUG: Title用於劃分單詞的規則不能很好的處理Unicode標點符號。

func ToLower

func ToLower(s []byte) []byte

返回將全部字母都轉爲對應的小寫版本的拷貝。

func ToLowerSpecial

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

使用_case規定的字符映射,返回將全部字母都轉爲對應的小寫版本的拷貝。

func ToUpper

func ToUpper(s []byte) []byte

返回將全部字母都轉爲對應的大寫版本的拷貝。

func ToUpperSpecial

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

使用_case規定的字符映射,返回將全部字母都轉爲對應的大寫版本的拷貝。

func ToTitle

func ToTitle(s []byte) []byte

返回將全部字母都轉爲對應的標題版本的拷貝。

func ToTitleSpecial

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

使用_case規定的字符映射,返回將全部字母都轉爲對應的標題版本的拷貝。

func Repeat

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

返回count個b串聯造成的新的切片。

func Replace

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

返回將s中前n個不重疊old切片序列都替換爲new的新的切片拷貝,若是n<0會替換全部old子切片。

func Map

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

將s的每個unicode碼值r都替換爲mapping(r),返回這些新碼值組成的切片拷貝。若是mapping返回一個負值,將會丟棄該碼值而不會被替換(返回值中對應位置將沒有碼值)。

func Trim

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

返回將s先後端全部cutset包含的unicode碼值都去掉的子切片。(共用底層數組)

func TrimSpace

func TrimSpace(s []byte) []byte

返回將s先後端全部空白(unicode.IsSpace指定)都去掉的子切片。(共用底層數組)

func TrimFunc

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

返回將s先後端全部知足f的unicode碼值都去掉的子切片。(共用底層數組)

func TrimLeft

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

返回將s前端全部cutset包含的unicode碼值都去掉的子切片。(共用底層數組)

func TrimLeftFunc

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

返回將s前端全部知足f的unicode碼值都去掉的子切片。(共用底層數組)

func TrimPrefix

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

返回去除s可能的前綴prefix的子切片。(共用底層數組)

Example

func TrimRight

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

返回將s後端全部cutset包含的unicode碼值都去掉的子切片。(共用底層數組)

func TrimRightFunc

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

返回將s後端全部知足f的unicode碼值都去掉的子切片。(共用底層數組)

func TrimSuffix

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

返回去除s可能的後綴suffix的子切片。(共用底層數組)

func Fields

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

返回將字符串按照空白(unicode.IsSpace肯定,能夠是一到多個連續的空白字符)分割的多個子切片。若是字符串所有是空白或者是空字符串的話,會返回空切片。

func FieldsFunc

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

相似Fields,但使用函數f來肯定分割符(知足f的utf-8碼值)。若是字符串所有是分隔符或者是空字符串的話,會返回空切片。

func Split

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

用去掉s中出現的sep的方式進行分割,會分割到結尾,並返回生成的全部[]byte切片組成的切片(每個sep都會進行一次切割,即便兩個sep相鄰,也會進行兩次切割)。若是sep爲空字符,Split會將s切分紅每個unicode碼值一個[]byte切片。

func SplitN

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

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

用從s中出現的sep後面切斷的方式進行分割,會分割到結尾,並返回生成的全部[]byte切片組成的切片(每個sep都會進行一次切割,即便兩個sep相鄰,也會進行兩次切割)。若是sep爲空字符,Split會將s切分紅每個unicode碼值一個[]byte切片。

func SplitAfterN

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

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

將一系列[]byte切片鏈接爲一個[]byte切片,之間用sep來分隔,返回生成的新切片。

相關文章
相關標籤/搜索