0Pricing
Go Academy · レッスン

Printfの動詞

値を正確に書式設定します

「Printfの動詞」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。

動詞とは

fmt.Printfはフォーマット文字列を使って値を整形します。その中のパーセント記号と英字の組み合わせが動詞であり、次の引数をどのように出力するかを指定します。

例:整数には%d、文字列には%sを使います。

package main

import "fmt"

func main() {
    fmt.Printf("%s is %d years old\n", "Ada", 36)
}

改行を忘れない

Printlnとは異なり、Printfは改行を追加しません。改行したい場合は、自分で\nを追加します。

package main

import "fmt"

func main() {
    fmt.Printf("line one\n")
    fmt.Printf("line two\n")
}

汎用的な動詞 %v

%vは値をデフォルトの形式で出力し、ほとんどすべての型で使用できます。%+vを使うと、構造体のフィールド名も追加されます。

package main

import "fmt"

type Point struct{ X, Y int }

func main() {
    p := Point{1, 2}
    fmt.Printf("%v\n", p)
    fmt.Printf("%+v\n", p)
}

Go構文の動詞 %#v

%#vは、Goのソースコードに記述する場合と同じ形式で値を出力します。デバッグに最適です。

package main

import "fmt"

type Point struct{ X, Y int }

func main() {
    p := Point{1, 2}
    fmt.Printf("%#v\n", p)
}

型の動詞 %T

%Tは値の型を出力します。扱っている値の型がわからない場合に便利です。

package main

import "fmt"

func main() {
    fmt.Printf("%T\n", 42)
    fmt.Printf("%T\n", "hi")
    fmt.Printf("%T\n", 3.14)
}

整数の基数

整数には、次のような動詞があります。

  • %d:10進数
  • %b:2進数
  • %o:8進数
  • %x:16進数
package main

import "fmt"

func main() {
    n := 255
    fmt.Printf("%d %b %o %x\n", n, n, n, n)
}

浮動小数点数の形式

浮動小数点数には、10進表記の%fと指数表記の%eを使用します。%gは、妥当な形式のうち最も短いものを選びます。

package main

import "fmt"

func main() {
    x := 3.14159
    fmt.Printf("%f\n", x)
    fmt.Printf("%e\n", x)
    fmt.Printf("%g\n", x)
}

浮動小数点数の精度

.Nを追加すると、小数点以下の桁数を指定できます。%.2fは小数点以下を必ず2桁で表示するため、金額の表示に最適です。

package main

import "fmt"

func main() {
    price := 9.5
    fmt.Printf("$%.2f\n", price)
}

幅と配置

動詞の前に数字を指定すると、最小幅を設定できます。デフォルトでは値は右寄せになり、マイナス記号を付けると左寄せになります。

package main

import "fmt"

func main() {
    fmt.Printf("[%5d]\n", 42)
    fmt.Printf("[%-5d]\n", 42)
}

ゼロで埋める

幅の先頭に0を付けると、数値がゼロで埋められます。固定長のコードやタイムスタンプに適しています。

package main

import "fmt"

func main() {
    fmt.Printf("%04d\n", 7)
    fmt.Printf("%02d:%02d\n", 9, 5)
}

ブール値、引用符、パーセント記号

その他の動詞には、ブール値用の%t、二重引用符付きの文字列用の%q、文字どおりのパーセント記号用の%%があります。

package main

import "fmt"

func main() {
    fmt.Printf("%t\n", true)
    fmt.Printf("%q\n", "hi")
    fmt.Printf("100%%\n")
}

確認問題

浮動小数点数を小数点以下2桁で整形する動詞はどれですか。

まとめ:Printfの動詞

これで値を正確に整形できるようになりました。

  • 一般的な形式:%v、%+v、%#v、%T
  • 数値:%d、%b、%x、%f、%.2f
  • レイアウト:幅、左寄せ用の-、ゼロ埋め用の0
package main

import "fmt"

func main() {
    fmt.Printf("%-8s %6.2f\n", "Total:", 12.5)
}

よくある質問

「Printfの動詞」レッスンは無料ですか?

はい。「Printfの動詞」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。

「Printfの動詞」で何を学びますか?

値を正確に書式設定します ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Go Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Printfの動詞」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このGo Academyレッスンでコードを書いて実行できますか?

はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Printfの動詞
  2. SprintfとFprintf
  3. Stringerインターフェース
  4. 入力のスキャン
← Go Academyに戻る