Golang で を 型string
に変換することは可能ですか?io.Writer
この文字列を使用するつもりですfmt.Fprintf()
が、型を変換できません。
ベストアンサー1
に書き込むことはできませんstring
。Gostring
では は不変です。
最良の代替案はbytes.Buffer
Go 1.10以降はより高速strings.Builder
型: 実装するio.Writer
そこに書き込むことができ、その内容string
をBuffer.String()
そしてBuilder.String()
またはバイトスライスとしてBuffer.Bytes()
。
string
バッファを次のように作成すると、バッファの初期内容として を持つこともできます。bytes.NewBufferString()
:
s := "Hello"
buf := bytes.NewBufferString(s)
fmt.Fprint(buf, ", World!")
fmt.Println(buf.String())
出力(遊び場に行く):
Hello, World!
型の変数string
(または型の任意の値string
)を追加する場合は、次のようにします。Buffer.WriteString()
(またはBuilder.WriteString()
):
s2 := "to be appended"
buf.WriteString(s2)
または:
fmt.Fprint(buf, s2)
また、2つのsを連結したいだけの場合はstring
、バッファを作成して使用する必要はないことに注意してください。fmt.Fprintf()
演算子を使用してそれらを連結するだけです+
。
s := "Hello"
s2 := ", World!"
s3 := s + s2 // "Hello, World!"
以下も参照:Golang: 印刷せずに文字列をフォーマットしますか?
以下も興味深いかもしれません:ResponseWriter.Write と io.WriteString の違いは何ですか?