書式付き出力
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 29/109。
Goでfmt.Printf()関数を使って出力をフォーマットする方法を学びましょう。この関数を使用すると、プレースホルダーを使用して特定の形式で値を表示できます。
まず、プレースホルダーを使用してさまざまなデータ型をフォーマットするプログラムを作成しましょう。
name := "Gopher"
age := 5
height := 1.5
fmt.Printf("Name: %s, Age: %d, Height: %.1f\n", name, age, height)このコードを実行すると、テキスト "Name: Gopher, Age: 5, Height: 1.5" が画面に表示されます。文字列内のプレースホルダーは、変数の実際の値に置き換えられます。
それぞれのプレースホルダーが何をするのか理解しましょう:
// %s は文字列(name)に置き換えられます
// %d は整数値(age)に置き換えられます
// %.1f は小数点第1位までの浮動小数点数値(height)に置き換えられます
// %t はブール値(true または false)に置き換えられますfmt.Printf() 関数は、書式指定文字列の後に指定した対応する変数で各プレースホルダーを置き換えます。変数の順序は、プレースホルダーの順序と一致している必要があります。
それでは、異なる種類のフォーマットを使用した別の例を試してみましょう:
pi := 3.14159
percentage := 0.75
letter := 'A'
fmt.Printf("Pi: %.2f, Percentage: %.1f%%, Letter: %c\n", pi, percentage*100, letter)このコードを実行すると、テキスト "Pi: 3.14, Percentage: 75.0%, Letter: A" が画面に表示されます。%.2f が pi に対して小数点以下2桁のみを表示していること、そしてパーセンテージをパーセント値として表示するために100を掛けていることに注目してください。
また、書式指定文字列内の特別なシーケンス %% にも注目してください。これは、fmt.Printf() でリテラルの % 文字を出力する方法です。単一の % はプレースホルダーの開始として扱われるため、%% はそれをエスケープしてパーセント記号自体を表示するために使用されます。
チャレンジ
簡単このチャレンジでは、Goの `fmt.Printf()` 関数を使用して、フォーマットされた出力を練習します。
特定の形式で表示する必要がある製品情報があります。フォーマット動詞(format verbs)を使用して表示してください。変数はあらかじめ定義されています。
あなたのタスクは、適切なフォーマット動詞を指定した `fmt.Printf()` を使用して、製品情報を表示することです:
- 文字列には `%s` を使用する
- 整数には `%d` を使用する
- 小数点以下2桁の浮動小数点数には `%.2f` を使用する
- 布飾値(boolean)には `%t` を使用する
製品情報を、期待される出力と全く同じように表示してください。
チートシート
プレースホルダーを使用して出力をフォーマットするには、fmt.Printf()を使用します:
fmt.Printf("Name: %s, Age: %d, Height: %.1f\n", name, age, height)一般的な書式指定子:
%s- 文字列値%d- 整数値%.1f- 小数点第1位までの浮動小数点数%.2f- 小数点第2位までの浮動小数点数%t- 論理値(boolean)%c- 文字%%- パーセント記号のリテラル (%)
変数の順序は、書式文字列内のプレースホルダーの順序と一致する必要があります。
出力後に改行するには、書式文字列の最後に \n を使用します。
自分で試してみよう
package main
import "fmt"
func main() {
// 製品情報
productName := "Wireless Headphones"
productPrice := 79.99
productInStock := true
productID := 12345
// TODO: 書式指定子を指定した fmt.Printf() を使用して、製品情報を表示してください:
// Product: Wireless Headphones (ID: 12345)
// Price: $79.99
// In Stock: true
//
// ヒント: 文字列には %s、整数には %d、浮動小数点数には %.2f、ブール値には %t を使用します
// 適切にフォーマットするために、各行の最後に \n を追加することを忘れないでください
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。