fmtで出力する
3つを使い分ける
fmt にはよく使う関数が3つあります。名前が似ていますが、役割ははっきり違います。
プレーンテキスト
Println 画面に出す。最後に改行が付く
Printf 画面に出す。形を指定できる。改行は付かない
Sprintf 画面に出さず、文字列として返す最後の Sprintf だけ頭に S が付いています。この S は String の S で、「画面ではなく文字列に出す」という意味です。
Println はそのまま並べる
Go
fmt.Println("商品名", "きのこ図鑑")プレーンテキスト
商品名 きのこ図鑑渡したものを半角スペースで区切って並べ、最後に改行します。手軽ですが、間隔や桁を細かく決められません。
Printf は形を先に決める
Go
fmt.Printf("%s は %d 円です\n", "きのこ図鑑", 1200)プレーンテキスト
きのこ図鑑 は 1200 円です最初の文字列が型紙です。%s や %d の場所が、後ろに渡した値で埋まります。
プレーンテキスト
%s 文字列
%d 整数
%v なんでも。迷ったらこれ
%.1f 小数第1位までの数Printf は改行を付けないので、必要なら自分で \n を書きます。
Sprintf は返す
形は Printf と同じで、結果を画面ではなく戻り値にします。
Go
fmt.Sprintf("%s は %d 円です", "きのこ図鑑", 1200)
// 結果は文字列 "きのこ図鑑 は 1200 円です"組み立てた文字を、あとで別の処理に渡したいときに使います。文字列を受け取る書き方は、変数を学んでから扱います。
この回の練習では
今回は main の中に fmt.Printf を1行書き、商品名と価格を画面に出します。上の「Printf は形を先に決める」の例を使ってください。答え合わせでは画面に出た文字を比較します。
数の埋め込みに注意
%d に文字列を渡すと、エラーではなく変な出力になります。
Go
fmt.Sprintf("%d 円", "1200")
// %!d(string=1200) 円%!d は「%d に整数でないものが来ました」という Go からの合図です。見かけたら型紙と渡した値を見比べてください。
要件
fmt.Printfを使い、商品名を%s、価格を%dに入れる- 末尾に
\nを書いて改行する
ヒント
編集 ゆめさく編集部