ホームページ  >  記事  >  バックエンド開発  >  golangで文字列を整数に変換する方法

golangで文字列を整数に変換する方法

青灯夜游
青灯夜游オリジナル
2023-01-05 11:44:225548ブラウズ

変換方法: 1. Atoi() を使用して string 型の整数を int 型に変換します (構文は "strconv.Atoi(str)" です; 2. ParseInt() を使用して文字列を変換しますこれは整数値であり、符号は受け入れられます。構文は "strconv.ParseInt(str,10,64)" です。 3. ParseUnit() を使用して文字列を整数値に変換しますが、符号は受け入れられません。 、構文は「strconv.ParseUint (str,10,64)」です。

golangで文字列を整数に変換する方法

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

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

strconv パッケージは、基本的なデータ型とその文字列表現の変換を実装しており、主に Atoi()、Itia()、parse シリーズ、format シリーズ、append シリーズの共通関数が含まれています。

以下では、文字列を整数に変換するための関数をいくつか紹介します。

Atoi()

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

func Atoi(s string) (i int, err error)

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

package main

import "fmt"
import "strconv"

func main() {
   s1 := "100"
      i, err := strconv.Atoi(s1)
   if err != nil {
      fmt.Println("can't convert to int")
   } else {
      fmt.Printf("type:%T value:%#v\n", i, i) //type:int value:100
   }
}

golangで文字列を整数に変換する方法

Parse シリーズ関数

Parse クラス関数は、文字列を指定された型に変換するために使用されます。 : ParseBool()、ParseFloat()、ParseInt()、ParseUint()。このうち、ParseInt() と ParseUnit() は文字列を整数に変換するために使用されます。

ParseInt()

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 =エラー範囲。

ParseUnit()

func ParseUint(s string, base int, bitSize int) (n uint64, err error)

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

例:

package main

import "fmt"
import "strconv"

func main() {
	i, err1 := strconv.ParseInt("-2", 10, 64)
	u, err2 := strconv.ParseUint("2", 10, 64)
	if err1 != nil {
      fmt.Println("can't convert to int")
    } else {
      fmt.Printf("type:%T value:%#v\n", i, i) //type:int64 value:2
    }
	if err2 != nil {
      fmt.Println("can't convert to int")
    } else {
      fmt.Printf("type:%T value:%#v\n", u, u) //type:uint64 value:0x2
    }
}

golangで文字列を整数に変換する方法

ParseInt() 関数と ParseUnit() 関数には両方とも 2 つの戻り値があり、最初の戻り値は次のとおりです。 2 番目の戻り値は変換に失敗した場合のエラー メッセージです。

拡張知識: go の整数型

Go 言語では、int8、int16、int32、int64 などの符号付き整数型と符号なし整数型の両方が提供されます。サイズがまったく異なる 4 つの符号付き整数型で、それぞれ 8、16、32、64 ビット (バイナリ ビット) サイズの符号付き整数に対応します。これに対応するのは、uint8、uint16、uint32、および uint64 です。符号なし整数型。

さらに、特定の CPU プラットフォームの語長 (マシン語サイズ) に対応する 2 つの整数型 int と uint があり、Int は最も広く使用されている符号付き整数を表します。 uint は符号なし整数を表します。実際の開発では、コンパイラとコンピュータ ハードウェアの違いにより、int と uint が表現できる整数のサイズは 32 ビットか 64 ビットの間で異なります。

ほとんどの場合、ループ カウンター (for ループのループ数を制御する変数)、配列とスライスのインデックス、および汎用の整数に使用できる整数型の int のみが必要です。演算子を使用する場合、通常は int 型が処理速度も最も速くなります。

Unicode 文字を表すために使用されるルーン型は int32 型と同等であり、通常は Unicode コード ポイントを表すために使用されます。 2 つの名前は同じ意味で使用できます。同様に、byte と uint8 も同等の型であり、一般に byte 型は、値が小さな整数ではなくプリミティブ データであることを強調するために使用されます。

最後に、符号なし整数型 uintptr があります。これは特定のビット サイズを指定しませんが、ポインターを収容するには十分な大きさです。 uintptr 型は、低レベルのプログラミング、特に Go 言語が C 言語の関数ライブラリまたはオペレーティング システム インターフェイスと対話する場合にのみ必要です。

int、uint、および uintptr のサイズは、一部の特定の動作環境では等しい場合がありますが、int と int32 など、依然として異なる型です。int 型のサイズも 32 ビットである場合がありますが、 int 型を int32 型として使用する必要がある場合は、明示的に型を変換する必要があり、その逆も同様です。

Go 言語の符号付き整数は 2 の補数形式で表されます。つまり、最上位ビットは符号ビットを表すために使用されます。n ビットの符号付き数値の値の範囲は -2(n- 1) から 2(n-1)-1。符号なし整数のすべてのビットは非負の数値を表すために使用され、値の範囲は 0 ~ 2n-1 です。たとえば、int8 型の整数の範囲は -128 ~ 127 ですが、uint8 型の整数の範囲は 0 ~ 255 です。

【関連する推奨事項: Go ビデオ チュートリアル プログラミング教育 ]

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。