Go で int 値を文字列に変換する方法は
Suraj Joshi
2023年12月11日
データ型によって、その型に割り当てることができる値と、その型に対して実行できる操作が決まります。データ型の変換はプログラミングで広く使用されている操作であり、データ型変換の中で、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
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn