書式付き出力
CoddyのGOジャーニー「基礎」セクションの一部。レッスン 29/109。
fmt.Printf()関数を使って、Goで出力をフォーマットする方法を学びましょう。この関数を使うと、プレースホルダーを使用して、値を特定の形式で表示できます。
まず、プレースホルダーを使ってさまざまなデータ型をフォーマットするプログラムを作成しましょう。
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 は文字列の値(名前)に置き換えられます
// %d は整数値(年齢)に置き換えられます
// %.1f は小数点以下1桁で表示される浮動小数点数の値(身長)に置き換えられます
// %t は真偽値(true または false)に置き換えられます
// %c は単一の文字('A' のような rune)に置き換えられます書式文字列の末尾にある\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を掛けていることに注目してください。
フォーマット文字列内の%%にも注目してください。これは、文字としての%記号を出力する特殊なエスケープシーケンスです。単独の%はプレースホルダーの開始として扱われるため、出力に実際のパーセント記号を表示したいときは、%%を使います。
チャレンジ
簡単このチャレンジでは、Go の `fmt.Printf()` 関数を使った書式付き出力を練習します。
特定の書式で表示する必要がある製品情報があります。書式指定子を使って表示してください。変数はすでに定義されています。
適切な書式指定子を使って `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 を追加すること
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Goオンラインコンパイラ