書式付き出力
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) に置き換えられますフォーマット文字列の末尾にある \n は、Enterキーを押すのと同じようにカーソルを新しい行に移動させるエスケープ文字です。これは、閉じ引用符の前にスペースを入れずに引用符の中に記述する必要があります。そうしないと、出力に余分なスペースが表示されてしまいます。
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が円周率の小数点以下2桁のみを表示し、パーセンテージを100倍してパーセント値として表示している点に注目してください。
また、フォーマット文字列内の %% にも注目してください。これは、リテラルの % 記号を出力する特別なエスケープシーケンスです。単一の % はプレースホルダーの開始として扱われるため、出力に実際のパーセント記号を表示したい場合は常に %% を使用します。
チャレンジ
簡単このチャレンジでは、`fmt.Printf()` 関数を使用して Go でのフォーマット済み出力の使用を練習します。
フォーマット動詞を使用して特定の形式で表示する必要がある製品情報があります。変数はすでに定義されています。
あなたのタスクは、適切なフォーマット動詞を指定した `fmt.Printf()` を使用して、製品情報を表示することです:
- 文字列には `%s` を使用する
- 整数には `%d` を使用する
- 小数点以下2桁の浮動小数点数には `%.2f` を使用する
- ブール値には `%t` を使用する
期待される出力に示されている通りに製品情報を表示してください。
自分で試してみよう
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 を追加することを忘れないでください
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。