ホームページ バックエンド開発 Golang Go言語で文字列をint型に変換する方法

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

Mar 15, 2021 pm 02:00 PM
言語を移動 型変換

変換方法: 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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GOの浮動小数点番号操作に使用されるライブラリは何ですか? GOの浮動小数点番号操作に使用されるライブラリは何ですか? Apr 02, 2025 pm 02:06 PM

GO言語の浮動小数点数操作に使用されるライブラリは、精度を確保する方法を紹介します...

Go's Crawler Collyのキュースレッドの問題は何ですか? Go's Crawler Collyのキュースレッドの問題は何ですか? Apr 02, 2025 pm 02:09 PM

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

Goでは、Printlnとstring()関数を備えた文字列を印刷すると、なぜ異なる効果があるのですか? Goでは、Printlnとstring()関数を備えた文字列を印刷すると、なぜ異なる効果があるのですか? Apr 02, 2025 pm 02:03 PM

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか? Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか? Apr 02, 2025 pm 05:09 PM

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

Redisストリームを使用してGO言語でメッセージキューを実装する場合、user_idタイプの変換の問題を解決する方法は? Redisストリームを使用してGO言語でメッセージキューを実装する場合、user_idタイプの変換の問題を解決する方法は? Apr 02, 2025 pm 04:54 PM

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

GOのどのライブラリが大企業によって開発されていますか、それとも有名なオープンソースプロジェクトによって提供されていますか? GOのどのライブラリが大企業によって開発されていますか、それとも有名なオープンソースプロジェクトによって提供されていますか? Apr 02, 2025 pm 04:12 PM

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

GO言語の「VAR」と「タイプ」キーワード定義構造の違いは何ですか? GO言語の「VAR」と「タイプ」キーワード定義構造の違いは何ですか? Apr 02, 2025 pm 12:57 PM

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

GoおよびViperライブラリを使用するときにポインターを渡す必要があるのはなぜですか? GoおよびViperライブラリを使用するときにポインターを渡す必要があるのはなぜですか? Apr 02, 2025 pm 04:00 PM

ポインター構文とviperライブラリの使用における問題への取り組みGO言語でプログラミングするとき、特にポインターの構文と使用を理解することが重要です...

See all articles