% 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
のエラーを通知します。
なし。
なし。