Macro PRINT-UNREADABLE-OBJECT

UP


Macro PRINT-UNREADABLE-OBJECT

Macro PRINT-UNREADABLE-OBJECT

構文

print-unreadable-object ( object stream &key type identity ) form* => nil

引数と戻り値

object - オブジェクト。評価されます。
stream - ストリーム指定子。評価されます。
type - generalized-boolean。評価されます。
identity - generalized-boolean。評価されます。
form - 暗黙のprogn

定義

streamobjectの表現として、#<で始まり>で終わるような印刷を出力します。

ボディ部であるformによってstreamへ出力された全てのものは、 山かっこで囲まれます。 もしtypetrueのとき、 フォームformによる出力の前に、 objectの型の簡潔な説明と空白文字が出力されます。 もしidentitytrueのとき、フォームformによる出力に続き、 スペース文字とobjectの同一性の表現が出力され、 それは典型的にはストレージのアドレスになります。

もしtypeidentityが指定されなかったとき、その値はfalseになります。 ボディ部のformを省略するのは正当です。 もしtypeidentityが両方trueであり、 ボディ部のformがない場合は、 ただひとつのスペースだけが型と同一性の区切りに使用されます。

例文

;; この例の正確なフォームの出力は実装依存であることに注意してください。

(defmethod print-object ((obj airplane) stream)
  (print-unreadable-object (obj stream :type t :identity t)
    (princ (tail-number obj) stream)))

(prin1-to-string my-airplane)
=>  "#<Airplane NW0773 36000123135>"
OR=>  "#<FAA:AIRPLANE NW0773 17>"

影響

なし。

例外

もし*print-readably*trueのとき、 print-unreadable-objectは何も印刷せず、 型print-not-readableのエラーを通知します。

参考

なし。

備考

なし。


TOP, Github