read-sequence的返回值

當處理二進制流時,我見過幾回這種用法:javascript

(let ((elements-read (read-sequence buffer stream)))
  ...)

雖然再那種情況下讀取的返回值是元素的數量,通常狀況下這只是巧合,read-sequence函數的只是返回值是這麼定義的:java

序列裏未被更新的第一個元素的索引。函數

所以,當你使用start選項調用read-sequence函數時,將其返回值做爲讀到的元素數量就是徹底錯誤的。
例如以下表達式,若是stream流裏有一個或多個能夠讀取的元素時,讀取到的元素數量是1而不是43。code

(read-sequence buffer stream :start 42 :end 43)
=> 43
相關文章
相關標籤/搜索