Go言語で文字列をint型に変換する方法

青灯夜游
リリース: 2023-02-17 14:27:55
オリジナル
46245 人が閲覧しました

変換方法: 1. strconv パッケージの Atoi() 関数を使用して、"strconv.Atoi(string)" という構文で string 型の整数を int 型に変換します。 strconv パッケージの Atoi() 関数 ParseInt() 関数は、文字列 (正負の符号を受け入れる) で表される整数値を返すことができ、構文は「strconv.ParseInt(string,10,64)」です。

Go言語で文字列をint型に変換する方法

このチュートリアルの動作環境: Windows10 システム、GO 1.18、thinkpad t480 コンピューター。

golang で文字列をさまざまな int 型に変換する方法

文字列を int に変換します:

int, err := strconv.Atoi(string)
ログイン後にコピー

string を int64 に変換します:

int64, err := strconv.ParseInt(string, 10, 64)
ログイン後にコピー

int から文字列へ:

string := strconv.Itoa(int)
ログイン後にコピー

int64 から文字列へ:

string := strconv.FormatInt(int64,10)
ログイン後にコピー

Go 言語 strconv (型変換) はじめに

Go 言語の strconv パッケージは、基本データ型とその文字列表現の間の相互変換を実装します。

strconv パッケージ

strconv パッケージは、基本的なデータ型とその文字列表現の変換を実装しており、主に次の共通関数があります。 ##Atoi ()Itia()、解析シリーズ、フォーマットシリーズ、追加シリーズ。

その他の機能については公式ドキュメントを確認してください。

String 型と int 型の変換

この一連の関数は、日常のプログラミングで最もよく使用されます。

Atoi()

Atoi() 関数は、 string 型整数を int 型 に変換するために使用されます。関数のシグネチャは次のとおりです。

func Atoi(s string) (i int, err error)
ログイン後にコピー

受信した文字列パラメータを int 型に変換できない場合は、エラーが返されます。

s1 := "100"
i1, err := strconv.Atoi(s1)
if err != nil {
    fmt.Println("can't convert to int")
} else {
    fmt.Printf("type:%T value:%#v\n", i1, i1) //type:int value:100
}
ログイン後にコピー

Itoa()

Itoa() 関数は、int 型データを対応する文字列に変換するために使用されますつまり、特定の関数シグネチャは次のとおりです。

func Itoa(i int) string
ログイン後にコピー

サンプル コードは次のとおりです。

i2 := 200s2 := strconv.Itoa(i2)fmt.Printf("type:%T value:%#v\n", s2, s2) //type:string value:"200"
ログイン後にコピー

Parse クラス関数

Parse クラス関数は、文字列を次のタイプの指定された値に変換します: ParseBool()、ParseFloat()、ParseInt()、ParseUint()。

ParseBool()

func ParseBool(str string) (value bool, err error)
ログイン後にコピー

文字列で表されるブール値を返します。 1、0、t、f、T、F、true、false、True、False、TRUE、FALSE を受け入れますが、それ以外の場合はエラーを返します。

ParseInt()

func ParseInt(s string, base int, bitSize int) (i int64, err error)
ログイン後にコピー

正負の符号を受け入れて、文字列で表される整数値を返します。

base は基数 (2 ~ 36) を指定します。base が 0 の場合は文字列の接頭辞から判断されます。「0x」は 16 進数、「0」は 8 進数、それ以外の場合は 10 進数です。 ;

bitSize は、結果がオーバーフローせずに割り当てられる必要がある整数型を指定します。0、8、16、32、および 64 は、それぞれ int、int8、int16、int32、および int64 を表します。返されたエラーは *NumErr 型です。構文が間違っている場合は err.Error = ErrSyntax、結果が型の範囲を超えている場合は err.Error = ErrRange になります。

ParseUnit()

func ParseUint(s string, base int, bitSize int) (n uint64, err error)
ログイン後にコピー
ParseUint

ParseInt と似ていますが、符号を受け入れず、符号なし整数に使用されます。 ParseFloat()

func ParseFloat(s string, bitSize int) (f float64, err error)
ログイン後にコピー
浮動小数点数を表す文字列を解析し、その値を返します。

s が文法規則に準拠している場合、関数は s で表される値に最も近い浮動小数点数を返します (IEEE754 標準の丸めを使用)。

bitSize は予想される受信タイプを指定します、32 は float32 (戻り値は正確な値を変更せずに float32 に割り当てることができます)、64 は float64;

戻り値 err は *NumErr ですtype、構文が正しくない場合は err.Error=ErrSyntax、結果が表現範囲を超える場合、戻り値 f は ±Inf となり、err.Error=ErrRange になります。

コード例

b, err := strconv.ParseBool("true")
f, err := strconv.ParseFloat("3.1415", 64)
i, err := strconv.ParseInt("-2", 10, 64)
u, err := strconv.ParseUint("2", 10, 64)
ログイン後にコピー
これらの関数には 2 つの戻り値があります。最初の戻り値は変換された値であり、2 番目の戻り値は変換された値です。エラー メッセージ。

Format シリーズ関数

Format シリーズ関数は、指定された型のデータを文字列型データにフォーマットする機能を実装します。

FormatBool()

func FormatBool(b bool) string
ログイン後にコピー
b の値に応じて「true」または「false」を返します。

FormatInt()

func FormatInt(i int64, base int) string
ログイン後にコピー
i の基本文字列表現を返します。基数は 2 ~ 36 である必要があり、10 より大きい数値を表すために結果では小文字の「a」~「z」が使用されます。

FormatUint()

func FormatUint(i uint64, base int) string
ログイン後にコピー
は、FormatInt の符号なし整数バージョンです。

FormatFloat()

func FormatFloat(f float64, fmt byte, prec, bitSize int) string
ログイン後にコピー
この関数は、浮動小数点数を文字列として表し、それを返します。

bitSize は f のソース タイプ (32: float32、64: float64) を表し、それに応じて丸められます。

fmt 表現形式: 'f' (-ddd.dddd)、'b' (-ddddp±ddd、指数は 2 進数)、'e' (-d.dddde±dd、10 進指数)、' E' (-d.ddddE±dd、10 進指数)、'g' (指数が非常に大きい場合は 'e' 形式を使用し、それ以外の場合は 'f' 形式を使用します)、'G' (指数が大きい場合は 'E' 形式を使用します)非常に大きい、それ以外の場合は「f」形式)。

prec は精度を制御します (指数部を除く): 'f'、'e'、 'E' の場合は小数点以下の桁数を表し、'g'、'G' の場合は小数点以下の桁数を表します。 、合計の桁数を制御します。 prec が -1 の場合、f を表すために必要な最小数の数値を使用することを意味します。

コード例

s1 := strconv.FormatBool(true)
s2 := strconv.FormatFloat(3.1415, 'E', -1, 64)
s3 := strconv.FormatInt(-2, 16)
s4 := strconv.FormatUint(2, 16)
ログイン後にコピー

其他

isPrint()

func IsPrint(r rune) bool
ログイン後にコピー

返回一个字符是否是可打印的,和unicode.IsPrint一样,r必须是:字母(广义)、数字、标点、符号、ASCII空格。

CanBackquote()

func CanBackquote(s string) bool
ログイン後にコピー

返回字符串s是否可以不被修改的表示为一个单行的、没有空格和tab之外控制字符的反引号字符串。

其他

除上文列出的函数外,strconv包中还有Append系列、Quote系列等函数。具体用法可查看官方文档。

推荐学习:Golang教程

以上がGo言語で文字列をint型に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート