GolangのFormat Stringを理解する
Min-jun Kim
Dev Intern · Leapcell

Key Takeaways
- Goの
fmt
パッケージは、文字列、数値、およびデータ型に対して柔軟な書式設定を提供します。 %s
、%d
、%f
などの書式指定子は、さまざまなデータ型の書式設定を制御します。- 幅、精度、および配置オプションにより、カスタマイズされた出力書式設定が可能です。
Golang(一般にGoとして知られています)は、fmt
パッケージを通じて文字列をフォーマットするための強力で柔軟な方法を提供します。このパッケージは、開発者が文字列、数値、およびその他のデータ型を読みやすくカスタマイズ可能な方法でフォーマットできるさまざまな関数を提供します。
基本的な文字列フォーマット
fmt
パッケージのSprintf
関数は、文字列をフォーマットするためによく使用されます。書式指定子と対応する値を取り、フォーマットされた文字列を返します。
package main import ( "fmt" ) func main() { name := "Alice" age := 30 formattedString := fmt.Sprintf("Name: %s, Age: %d", name, age) fmt.Println(formattedString) }
出力:
Name: Alice, Age: 30
この例では:
%s
は文字列のプレースホルダーです。%d
は整数のプレースホルダーです。
一般的な書式指定子
Goでよく使用される書式指定子をいくつか示します。
%v
: 値のデフォルトの書式。%#v
: 値のGo構文表現。%T
: 値の型。%%
: リテラルのパーセント記号。
整数の場合:
%b
: 2進数表現。%c
: Unicodeコードポイントに対応する文字。%d
: 10進数表現。%o
: 8進数表現。%x
: 16進数表現(文字は小文字)。%X
: 16進数表現(文字は大文字)。
浮動小数点数および複素数の場合:
%e
: 指数表記(例:1.23e+03
)。%f
: 小数点以下を表示しますが、指数は表示しません(例:123.456
)。%g
: 値の精度に基づいて%e
または%f
を使用します。
幅と精度
フォーマットされた出力の幅と精度を制御できます。 例えば:
package main import ( "fmt" ) func main() { pi := 3.141592653589793 formattedPi := fmt.Sprintf("%.2f", pi) fmt.Println(formattedPi) }
出力:
3.14
ここで、%.2f
は浮動小数点数を小数点以下2桁にフォーマットします。
パディングと配置
Golangでは、数値と文字列のパディングと配置が可能です。
%6d
: 少なくとも6文字幅になるように、整数をスペースで埋めます。%-6d
: 6文字幅内で整数を左揃えにします。%06d
: 少なくとも6文字幅になるように、整数をゼロで埋めます。
例:
package main import ( "fmt" ) func main() { number := 42 fmt.Printf("%6d\n", number) // 右揃え、スペースでパディング fmt.Printf("%-6d\n", number) // 左揃え fmt.Printf("%06d\n", number) // ゼロでパディング }
出力:
42
42
000042
文字列のフォーマット
文字列の場合、幅と配置を指定できます。
%10s
: 10文字幅内で文字列を右揃えにします。%-10s
: 10文字幅内で文字列を左揃えにします。
例:
package main import ( "fmt" ) func main() { str := "Go" fmt.Printf("%10s\n", str) // 右揃え fmt.Printf("%-10s\n", str) // 左揃え }
出力:
Go
Go
結論
Golangのfmt
パッケージは、文字列、数値、およびその他のデータ型をフォーマットするための包括的なツールセットを提供します。書式指定子、幅、精度、および配置オプションを習得することで、開発者は特定のニーズに合わせて明確で構造化された出力を生成できます。
FAQs
%v
は、任意の値のデフォルトの書式を出力します。
%.2f
を使用して、浮動小数点数を小数点以下2桁でフォーマットします。
%06d
を使用して、整数をゼロパディングでフォーマットします。
Leapcellは、Goプロジェクトをホストするための最適な選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedisのための次世代のサーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量のみを支払い、リクエストや料金は発生しません。
比類のないコスト効率
- アイドル料金なしの従量課金制。
- 例:25ドルで、平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実行可能な洞察のためのリアルタイムのメトリクスとロギング。
簡単なスケーラビリティと高パフォーマンス
- 容易に高並行性を処理するための自動スケーリング。
- 運用オーバーヘッドはゼロ - 構築に集中するだけです。
ドキュメントで詳細をご覧ください。
Xでフォローしてください:@LeapcellHQ