strconv パッケージは、Go 言語でよく使用されるパッケージであり、文字列と基本データ型の間の変換に使用されます。文字列の解析とフォーマット操作を行うための一連の関数を提供しています。
概要#
以下は strconv パッケージでよく使用される関数とその機能の概要です:
-
strconv.Itoa:整数を文字列に変換します。整数値を受け取り、その整数の文字列表現を返します。
例:
import ( "fmt" "strconv" ) func main() { num := 42 str := strconv.Itoa(num) fmt.Println(str) // 出力: "42" }
-
strconv.Atoi:文字列を整数に変換します。整数を表す文字列を受け取り、対応する整数値を返します。変換に失敗した場合、エラーメッセージが返されます。
例:
import ( "fmt" "strconv" ) func main() { str := "42" num, err := strconv.Atoi(str) if err != nil { fmt.Println("変換に失敗しました:", err) return } fmt.Println(num) // 出力: 42 }
-
strconv.ParseFloat:文字列を浮動小数点数に変換します。浮動小数点数を表す文字列、指定された桁数(32 または 64)、および対応する桁数の浮動小数点数型を受け取り、対応する浮動小数点数値を返します。変換に失敗した場合、エラーメッセージが返されます。
例:
import ( "fmt" "strconv" ) func main() { str := "3.14" num, err := strconv.ParseFloat(str, 64) if err != nil { fmt.Println("変換に失敗しました:", err) return } fmt.Println(num) // 出力: 3.14 }
-
strconv.FormatInt / strconv.FormatFloat:整数または浮動小数点数を文字列に変換します。整数または浮動小数点数の値と指定された基数(10 進数、16 進数など)を受け取り、対応する文字列表現を返します。
例:
import ( "fmt" "strconv" ) func main() { num := 42 str := strconv.FormatInt(int64(num), 10) fmt.Println(str) // 出力: "42" pi := 3.14159 str = strconv.FormatFloat(pi, 'f', 2, 64) fmt.Println(str) // 出力: "3.14" }
これらは strconv パッケージが提供する一部の一般的な関数ですが、他にもブール値、Unicode 文字などを処理するための他の関数も提供されています。
AppendXXX 概要#
AppendXXX
関数は、基本型の値をバイトスライス([]byte
)に追加するために使用されます。
-
AppendBool
関数func AppendBool(dst []byte, b bool) []byte
AppendBool
関数は、ブール値b
を文字列表現に変換し、その結果をバイトスライスdst
に追加します。返り値は追加後のバイトスライスです。例:
var dst []byte dst = strconv.AppendBool(dst, true) fmt.Println(string(dst)) // 出力: "true"
-
AppendFloat
関数func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte
AppendFloat
関数は、浮動小数点数f
を文字列表現に変換し、その結果をバイトスライスdst
に追加します。fmt
パラメータはフォーマットを指定し、prec
パラメータは精度を指定します。bitSize
パラメータは浮動小数点数のビット数を指定します。例:
var dst []byte dst = strconv.AppendFloat(dst, 3.14159, 'f', 4, 64) fmt.Println(string(dst)) // 出力: "3.1416"
これらの AppendXXX
関数は、基本型の値を文字列形式でバイトスライスに追加するために使用されます。既存のバイトスライス内の値を変更するのではなく、基本型の値を文字列に変換してバイトスライスに追加する場合に使用されます。
QuoteXXX 概要#
QuoteXXX
関数は、基本型の値を Go 言語のソースコード表現形式に変換し、その表現形式の文字列を返す strconv
パッケージの一連の関数です。
以下は QuoteXXX
関数の機能と例です:
-
Quote
関数func Quote(s string) string
Quote
関数は、文字列s
を Go 言語のソースコード表現形式に変換し、その表現形式の文字列を返します。特殊文字をエスケープして、文字列をソースコードで直接使用できるようにします。使用例:
str := `Hello, "Gopher"` quoted := strconv.Quote(str) fmt.Println(quoted) // 出力: "Hello, \"Gopher\""
-
QuoteRune
関数func QuoteRune(r rune) string
QuoteRune
関数は、Unicode 文字r
を Go 言語のソースコード表現形式に変換し、その表現形式の文字列を返します。使用例:
rune := '♥' quoted := strconv.QuoteRune(rune) fmt.Println(quoted) // 出力: "'♥'"
-
QuoteRuneToASCII
関数func QuoteRuneToASCII(r rune) string
QuoteRuneToASCII
関数は、Unicode 文字r
を Go 言語のソースコード表現形式に変換し、その表現形式の ASCII 文字列を返します。非 ASCII 文字をエスケープします。使用例:
rune := '♥' quoted := strconv.QuoteRuneToASCII(rune) fmt.Println(quoted) // 出力: "'\\u2665'"
-
QuoteRuneToGraphic
関数func QuoteRuneToGraphic(r rune) string
QuoteRuneToGraphic
関数は、Unicode 文字r
を Go 言語のソースコード表現形式に変換し、その表現形式の印字可能な文字の文字列を返します。非グラフィック文字をエスケープします。使用例:
rune := '\u2022' // 中文の"点"文字 quoted := strconv.QuoteRuneToGraphic(rune) fmt.Println(quoted) // 出力: "'•'"
これらの QuoteXXX
関数は、ソースコード文字列の表現形式を生成するために使用されます。特に、文字列や文字をソースコードに埋め込む必要がある場合に使用すると、表現形式が正しいことを保証し、構文エラーを引き起こさないようにすることができます。
結論#
strconv パッケージは、Go の標準ライブラリの一部であり、文字列と基本データ型の間の相互変換を行うために使用されます。基本型を文字列に変換する関数や、文字列を基本型に変換する関数など、さまざまな関数を提供しています。
このパッケージの一般的な関数と機能には次のものがあります:
-
Parse シリーズの関数:文字列を基本型の値に解析するための関数、例えば
ParseBool
、ParseInt
、ParseFloat
などの関数。 -
Format シリーズの関数:基本型の値を文字列の表現形式にフォーマットするための関数、例えば
FormatBool
、FormatInt
、FormatFloat
などの関数。 -
Append シリーズの関数:基本型の値をバイトスライスに追加するための関数、例えば
AppendBool
、AppendInt
、AppendFloat
などの関数。 -
Quote シリーズの関数:基本型の値を Go 言語のソースコード表現形式の文字列に変換するための関数、例えば
Quote
、QuoteRune
、QuoteRuneToASCII
などの関数。 -
文字列変換関数:
Atoi
、Itoa
、ParseUint
、FormatUint
などの関数で、文字列と整数型の間の変換を扱います。 -
文字列と浮動小数点数型の間の変換:
Atof
、FormatFloat
、ParseFloat
などの関数で、文字列と浮動小数点数型の間の変換を扱います。
strconv パッケージは、文字列と基本データ型の間の変換を簡単かつ柔軟に行うための方法を提供し、データのフォーマット変換や処理を簡単に行うことができます。