% 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
streamへobjectの表現として、#<で始まり>で終わるような印刷を出力します。
ボディ部であるformによってstreamへ出力された全てのものは、 山かっこで囲まれます。 もしtypeがtrueのとき、 フォームformによる出力の前に、 objectの型の簡潔な説明と空白文字が出力されます。 もしidentityがtrueのとき、フォームformによる出力に続き、 スペース文字とobjectの同一性の表現が出力され、 それは典型的にはストレージのアドレスになります。
もしtypeかidentityが指定されなかったとき、その値はfalseになります。 ボディ部のformを省略するのは正当です。 もしtypeとidentityが両方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のエラーを通知します。
なし。
なし。