バイト列と文字列は異なる内部データとして扱っています。変換したり、またその逆を行う際にはキャストが必要になります。イミュータブルになります。イミュータブルなのは理解しつつもバイト列を文字列にする為に無駄なアロケートをしたくない場合もあります。ドキュメントに明文化していなかった為に色々な作法が生まれてしまっていました。その代表的な物が以下です。いう構造体により管理されています。先頭2フィールドを無理やり参照する事で実現しています。コードでも使われており、これが公式の方法だと思って多くの人が使ってしまっていました。文字列とバイト列に関する最適化の妨げになり得ます。交換を最適化する事ができなくなります。これによりバイト列から文字列、またはその逆がミュータブルに変換できる様になりました。当然ですがこれらはバイト列の破壊的な変更により意図しない文字列の変更が行われる為、慎重に取り扱わなければなりません。持っているバイト列へのポインタが返されます。2つをまとめて保持しているのが分かります。0xc677600xc677600xc6790bまた文字列がスタックに取られている時にはメモリ破壊が発生しますのでランタイムでクラッシュします。'h'fmt.Println(s)以下の様にヒープにメモリが確保されている場合には期待通りに動作します。'h'fmt.Println(s)動的なアロケーションが発生しないため高速な変換が可能です。内部実装の多くがこれらで置き換わっていき、幾らか高速化が見込まれます。reserved.ご質問、お問い合わせはe-mailで。