関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。知らなかったので忘れない内にメモメモ。。。
append()
のドキュメントをたまたま参照していたら、以下のような記載があるのを発見。
As a special case, it is legal to append a string to a byte slice, like this:
slice = append([]byte("hello "), "world"...)
バイトスライスに文字列を直接追加できるんですね。知らなかったです。
Goで文字列は単なるバイト列なので ...
で指定してるから、バイトを追加しているってことになるからですね。
試してみる
package slices import "github.com/devlights/gomy/output" // AppendSpecialBehavior は、append() を利用する際の特別な挙動に付いてのサンプルです。 // // # REFERENCES // - https://pkg.go.dev/builtin@go1.20.6#append func AppendSpecialBehavior() error { // // append() を利用する際、以下のパターンは特別扱いで型が異なっているが動作する // - byteスライスに対して文字列を追加 // var ( sl = make([]byte, 0) ) sl = append(sl, []byte{0x61, 0x62, 0x63, 0x20}...) // OK sl = append(sl, "helloworld"...) // これもOK output.Stdoutf("[sl]", "%s/n", sl) return nil }
実行すると以下のようになります。
gitpod /workspace/try-golang (master) $ task task: [run] go run . -onetime ENTER EXAMPLE NAME: slice_append_special_behavior [Name] "slice_append_special_behavior" [sl] abc helloworld/n [Elapsed] 11.16µs
参考情報
builtin package - builtin - Go Packages
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。