Function READ-CHAR-NO-HANG

UP


Function READ-CHAR-NO-HANG

Function READ-CHAR-NO-HANG

構文

read-char-no-hang &optional input-stream eof-error-p eof-value recursive-p => char

引数と戻り値

input-stream - 入力ストリーム指定子。デフォルトは標準入力。
eof-error-p - generalized-boolean。デフォルトはtrue
eof-value - オブジェクト。デフォルトはnil
recursive-p - generalized-boolean。デフォルトはfalse
char - 文字か、eof-value

定義

read-char-no-hangは、 input-streamに利用可能な文字があるとき、 その文字を返却します。 もし文字が利用可能ではないとき、 read-char-no-hangnilを返却します。

もしrecursive-ptrueのとき、 この呼び出しはより上位レベルのreadによるものか、 Lispのリーダーによって使われる似たような関数から 埋め込まれたものであると見なされます。

もしファイルの終わりが発生し、 eof-error-pfalseであるときは、 eof-valueが返却されます。

例文

;; このコードは実装がコンソールからの入力の終端に
;; 改行を必要としないことを仮定しています。
(defun test-it ()
  (unread-char (read-char))
  (list (read-char-no-hang) 
        (read-char-no-hang) 
        (read-char-no-hang)))
=>  TEST-IT
;; 実装Aは、コンソールのインタラクティブな入力の終端に
;; 改行を必要としません。
 (test-it)
>>  a
=>  (#\a NIL NIL)
;; 実装Bは、コンソールのインタラクティブな入力の終端に
;; 改行を必要とし、その開業は入力ストリームに残します。
(test-it)
>>  a<NEWLINE>
=>  (#\a #\Newline NIL)

影響

*standard-input*, *terminal-io*

例外

eof-error-ptrueでありファイルの終わりに到達したときは、 型end-of-fileのエラーが通知されます。

参考

listen

備考

read-char-no-hangは正確にread-charと似ていますが、 もし文字を(例えばキーボードから)取得するために 待機する必要があるような場合は違っており、 このような場合は待つことなしに即座にnilを返却します。


TOP, Github