Go で int 値を文字列に変換する方法は
    
    Suraj Joshi
    2023年12月11日
    
    Go
    Go String
    
データ型によって、その型に割り当てることができる値と、その型に対して実行できる操作が決まります。データ型の変換はプログラミングで広く使用されている操作であり、データ型変換の中で、int から文字列値への変換は広く普及しています。
画面に数値を出力するとき、または文字列のように数値を操作するときに使用されます。Go は、標準ライブラリ strconv からのパッケージから文字列と整数の変換を直接提供します。
単純な int から string への変換を使用する場合、整数値は Unicode コードポイントとして解釈されます。結果の文字列には、コードポイントで表された文字が含まれ、UTF-8 でエンコードされます。
package main
import "fmt"
func main() {
    s := string(97)
    fmt.Printf("Value of 97 after conversion : %v\n", s)
}  
出力:
Value of 97 after conversion : a
しかし、これは望ましくないため、以下で説明するように、いくつかの標準関数を使用して整数を文字列データ型に変換します。
strconv パッケージの Itoa 関数
パッケージ strconv は、基本的なデータ型の文字列表現との間の変換を実装します。整数を文字列に変換するには、strconv パッケージの Itoa 関数を使用します。
package main
import (
    "fmt"
    "strconv"
)
func main() {
    x := 138
    fmt.Printf("Datatype of 138 before conversion : %T\n", x)
    a := strconv.Itoa(x)
    fmt.Printf("Datatype of 138 after conversion : %T\n", a)
    fmt.Println("Number: " + a)
}    
出力:
Datatype of 138 before conversion : int
Datatype of 138 after conversion : string
Number: 138
strconv パッケージの FormatInt 関数
strconv.FormatInt を使用して、指定されたベースで int64 をフォーマットします。FormatInt は、2 <= base <= 36 の場合、前述のベースの整数の文字列表現を提供し、結果は、10 以上の数字の値には小文字の a から z を使用します。
package main
import (
    "fmt"
    "strconv"
)
func main() {
    var integer_1 int64 = 31
    fmt.Printf("Value of integer_1 before conversion : %v\n", integer_1)
    fmt.Printf("Datatype of integer_1 before conversion : %T\n", integer_1)
    var string_1 string = strconv.FormatInt(integer_1, 10)
    fmt.Printf("Value of integer_1 after conversion in base 10: %v\n", string_1)
    fmt.Printf("Datatype of integer_1 after conversion in base 10 : %T\n", string_1)
    var string_2 string = strconv.FormatInt(integer_1, 16)
    fmt.Printf("Value of integer_1 after conversion in base 16 : %v\n", string_2)
    fmt.Printf("Datatype of integer_1 after conversion in base 16 : %T\n", string_2)
}    
出力:
Value of integer_1 before conversion : 31
Datatype of integer_1 before conversion : int64
Value of integer_1 after conversion in base 10: 31
Datatype of integer_1 after conversion in base 10 : string
Value of integer_1 after conversion in base 16 : 1f
Datatype of integer_1 after conversion in base 16 : string
Go の fmt.Sprint メソッド
fmt.Sprint メソッドに整数を渡すと、整数の文字列値を取得します。
package main
import (
    "fmt"
)
func main() {
    x := 138
    fmt.Printf("Datatype of 138 before conversion : %T\n", x)
    a := fmt.Sprint(x)
    fmt.Printf("Datatype of 138 after conversion : %T\n", a)
    fmt.Println("Number: " + a)
}  
出力:
Datatype of 138 before conversion : int
Datatype of 138 after conversion : string
Number: 138
        チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
    
著者: Suraj Joshi
    Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn