print文は式の値を標準出力に書き出す関数で、引数の値を文字列に変換して出力する事ができます。
主にプログラムの動作確認やデバッグに使用します。
Xcodeではprint文で出力した文字列は、デバッグエリアのコンソールウィンドウに表示されます。
環境
この記事の情報は次のバージョンで動作確認しています。
【Xcode】10.3
【Swift】5.0.1
【macOS】Mojave バージョン 10.14.6
【Swift】5.0.1
【macOS】Mojave バージョン 10.14.6
使用例
文字列
文字列の出力
1 2 3 4 5 |
print("カピ通信") print("OK") print("addボタン押下処理") |
出力結果
文字列変数/定数の出力
1 2 3 4 |
let str = "カピ通信" print(str) |
出力結果
文字列の結合
1 2 3 4 |
let str = "カピ通信" print("文字列→" + str) |
出力結果
文字列に変数/定数を埋め込む
変数/定数を\()で囲む事で、文字列に埋め込む事ができます。
("\"はキーボードのoption+"¥"で入力します。)
1 2 3 4 |
let str = "カピ通信" print("文字列→\(str)") |
出力結果
数値
1 2 3 4 5 |
let num = 99 print(num) print("数値→\(num)") |
出力結果
なお、文字列以外で次の表記はエラーになります。
1 2 3 |
print("数値→" + num) |
bool
1 2 3 4 5 |
var bool = true print(bool) print("bool→\(!bool)") |
出力結果
配列
1 2 3 4 |
let values = ["A", "B", "C"] print(values) |
出力結果
オブジェクト
オブジェクト(クラスや構造体のインスタンス)の情報も表示可能です。
ただ全てのプロパティ値が出力されるわけではないようです。
1 2 3 4 5 6 7 |
let label1 = UILabel() label1.frame = CGRect(x:150, y:200, width:160, height:30) label1.text = "カピ通信" label1.textColor = UIColor.red print(label1) |
出力結果
特殊文字
特殊文字は次に示すようなエスケープシーケンスを使用して出力可能です。
特殊文字 | エスケープシーケンス |
---|---|
改行 | \n |
バックスラッシュ | \\ |
タブスペース | \t |
ダブルクォーテーション | \” |
シングルクォーテーション | \’ |
複数アイテム出力
print文には複数の引数を指定する事が可能です。
区切り文字はseparetor:で指定できます。
デフォルト値は" "(スペース)です。
1 2 3 4 |
print("A", "B", "C") print("A", "B", "C", separator: "/") |
出力結果
終端文字の指定
terminator: で終端文字を指定できます。
デフォルト値は"\n"(改行)です。
終端文字に""(空文字)を指定すると、改行せずに出力する事ができます。
1 2 3 4 5 6 7 8 |
print("カピ") print("通信") print("カピ", terminator: "") print("通信") print("カピ", terminator: "/") print("通信") |
出力結果
整形出力
String(format:)を使う事で、数値を整形して出力する事が可能です。
これによりC言語のprintf()に近い使い方ができます。
整数出力
1 2 3 4 5 6 7 8 |
let year = 2020 let month = 8 let day = 5 print(String(format: "date = %d/%d/%d", year, month, day)) // 数値出力 print(String(format: "date = %4d/%2d/%2d", year, month, day)) // 桁指定(空白埋め) print(String(format: "date = %04d/%02d/%02d", year, month, day)) // 桁指定(0埋め) |
出力結果
浮動小数出力
1 2 3 4 5 6 7 |
let pi = 3.141592 print(String(format: "pi = %f", pi)) // 桁指定無し print(String(format: "pi = %.1f", pi)) // 桁指定あり print(String(format: "pi = %.2f", pi)) // 桁指定あり print(String(format: "pi = %.3f", pi)) // 桁指定あり |
出力結果
16進出力
1 2 3 4 5 |
let foo = 123 print(String(format: "hex = %04x", foo)) // 小文字 print(String(format: "HEX = %04X", foo)) // 大文字 |
出力結果
その他
その他のフォーマットパラメーターはこちらを参照して下さい。
String Format Specifiers
Explains how to create, search, concatenate, and draw strings in Cocoa.
最後に
標準出力に出力する方法としては、ここで紹介したprintの他に、dumpやdebugPrintなども使えます。
特にオブジェクトや配列などを出力する場合の出力形式がprint文とは違いますので、いろいろ試してみるといいでしょう。