Go で int 値を文字列に変換する方法は

  1. strconv パッケージの Itoa 関数
  2. strconv パッケージの FormatInt 関数
  3. Go の fmt.Sprint メソッド

データ型によって、その型に割り当てることができる値と、その型に対して実行できる操作が決まります。データ型の変換はプログラミングで広く使用されている操作であり、データ型変換の中で、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

関連記事 - Go Strings

  • Go で文字列を整数型に変換する方法
  • comments powered by Disqus