Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 文字列フォーマット | データ型
Go入門

book文字列フォーマット

メニューを表示するにはスワイプしてください

すべての基本データ型について学んだので、文字列フォーマットについて探求します。プログラミングにおける文字列フォーマットは、変数の値を文字列に組み込むことを指します。

注意

import文は、Goアプリケーションにパッケージをインポートするために使用されます。パッケージは、関連するGoソースファイルの集合であり、一連の機能やサービスを提供します。fmtパッケージは、文字列をフォーマットするための関数を提供します。

fmtパッケージの関数のひとつに、これまで使用してきたPrintln関数があります。Println関数は、出力テキストを毎回新しい行に表示します。一方、Printという関数は、改行せずに出力を表示します。

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

一般的に、これらの関数を使用して、次の方法で文字列データ内に変数の値を挿入できます。

index.go

index.go

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

しかし、この方法は効率的とは言えません。変数を適切な位置に挿入するために文字列を複数のセグメントに分割する必要があり、より複雑なケースでは煩雑になります。Printf関数はこの問題を解決し、書式付き出力の表示を簡単にします。

Printf関数は、最初の引数としてフォーマット文字列を受け取り、その後にフォーマット文字列へ挿入する値(または変数)を指定します。フォーマット文字列には、出力形式を定義するプレースホルダー(書式指定子)が含まれています。

以下は例です。

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

例で示されているように、フォーマット指定子は、文字列内で特定のデータ型のプレースホルダーとして機能する記号です。各データ型ごとに異なるフォーマット指定子が存在します。以下の表は、基本的なフォーマット指定子の一覧です。

フォーマット指定子データ型
%d整数
%s文字列
%f浮動小数点数
%tブール値
%c文字(またはルーン)

変数はフォーマット文字列内のそれぞれのプレースホルダーに置き換えられます。上記の例の出力では、最初の%dnの値に置き換えられます。同様に、2番目は対応する変数であるinに、最後の%doutの値に置き換えられます。

また、Sprintf関数を使用して文字列をフォーマットし、その結果を文字列変数に格納することもできます。Sprintfは文字列をフォーマットして、その結果の文字列を返すため、画面にすぐに表示するのではなく、保存や他の用途に利用できます。

index.go

index.go

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

これまでに学習した複数の概念を1つのプログラムに組み込んだ、より複雑な例を紹介します。次のプログラムとその出力を確認することで、コードリーディングのスキル向上に役立ちます。

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

場合によっては、コンパイラが値とフォーマット指定子を一致させるために暗黙的な型変換を行います。次の例で示します。

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

ルーン「char」は、文字としても数値としても出力される。ただし、場合によってはコンパイラがエラーを出すことがある。例えば、次のコードは「float」を暗黙的に「int」へ変換できないため、無効な出力となる。

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

以下のプログラムの出力は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  7

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  7
some-alt