Trim関数とは?
stringsパッケージのTrimLeft、TrimPrefixなどのTrimXXXとなる関数のこと。
特に、TrimRight と Trimsuffixを混同してしまいがちなので、解説していきます。
TrimRight
TrimRight
は、末尾の文字が、第二引数に指定したルーンの集合に当てはまったら、その文字を削除します。
fmt.Println(strings.TrimRight("123oxo", "xo")) // 123
123o
になりそうですが、oはxo
の一部なので、削除されて123となります。
TrimSuffix
TrimSuffixは、与えられた接尾辞の文字列を末尾から取り除いた値を返します。
fmt.Println(strings.TrimSuffix("123oxo", "xo")) // 123o
TrimLeft
TrimRight
と同様に、頭の文字が、第二引数に指定したルーンの集合に当てはまったら、その文字を削除します。
fmt.Println(strings.TrimLeft("xoxxo123", "xo")) // 123
TrimPrefix
TrimPrefixは、与えられた接頭辞の文字列を末尾から取り除いた値を返します。
fmt.Println(strings.TrimPrefix("xoxxo123", "xo")) // xxo123
Trim
Trimは、全ての文字列から第二引数に指定したルーンの集合に当てはまったら、その文字を削除します。
fmt. Println (strings. Trim ("oxo123oxo", "ox")) // 123
TrimFunc
Trimは、全ての文字列から第二引数に指定したカスタム関数に当てはまったら、その文字を削除します。
customFunc := func(c rune) bool {
return strings.ContainsRune("xo", c)
}
fmt.Println(strings.TrimFunc("xoxox123xoxox", customFunc)) // 123
TrimLeftFunc
頭の文字が、カスタム関数の返すルーンの集合に当てはまったら、その文字を削除します。
customFunc := func(c rune) bool {
return strings.ContainsRune("xo", c)
}
fmt.Println(strings.TrimLeft("xoxox123xoxox", customFunc)) // 123xoxox
TrimRightFunc
最後の文字が、カスタム関数の返すルーンの集合に当てはまったら、その文字を削除します。
customFunc := func(c rune) bool {
return strings.ContainsRune("xo", c)
}
fmt.Println(strings.TrimRight("xoxo123xoxox", customFunc)) // xoxo123
TrimSpace
最初と末尾のスペースを全て削除します。
fmt.Println(strings.TrimSpace(" 123 ")) // 123