類似記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。何気に分かってなかったので忘れないうちにメモメモ。。。
stringsパッケージには TrimRight
と TrimSuffix
という2つの関数があります。( TrimLeft
と TrimPrefix
も同様 )
この2つ、やってることが凄く似ていて、文字列の右側をトリムしてくれます。
ですが、少し動きが違います。
試してみる
$ go version go version go1.20.1 linux/amd64
package strs import ( "strings" "github.com/devlights/gomy/output" ) // DiffTrimRightAndTrimSuffix は、strings.TrimRight と strings.TrimSuffix のちょっとした違いについてのサンプルです. // // TrimRight は、第二引数が cutset となっている通り、切り取る対象の「セット」を指定している。 // なので、セット内に存在する文字であるかどうかで判定される。 // // TrimSuffix は、第二引数が suffix となっている通り、指定した suffix に一致するかどうかが判定される。 // なので、指定した suffix に完全一致しないと除去されない。 // // # REFERENCES // - https://pkg.go.dev/strings@go1.20.1#TrimRight // - https://pkg.go.dev/strings@go1.20.1#TrimSuffix func DiffTrimRightAndTrimSuffix() error { var ( str = "こんにちわ世界xox" ) output.Stdoutl("[TrimRight ]", strings.TrimRight(str, "xo")) output.Stdoutl("[TrimSuffix]", strings.TrimSuffix(str, "xo")) return nil }
実行すると以下のようになります。
gitpod /workspace/try-golang (master) $ task task: [run] go run . -onetime ENTER EXAMPLE NAME: string_diff_trimright_trimsuffix [Name] "string_diff_trimright_trimsuffix" [TrimRight ] こんにちわ世界 [TrimSuffix] こんにちわ世界xox [Elapsed] 8.22µs
結果の通りですが、TrimRightは指定した対象文字セットに含まれているかどうかで判定されて、TrimSuffixは指定した対象文字列に一致するかどうかで判定されます。
参考情報
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。