6.3.1 压栈

Keywords:

Previous: Input from connections,Up: Input from connections

6.3.1 压栈

C程序员可能对 ungetc 函数非常熟悉。这个函数会把一个字符退回到文本输入流中。R 连接以一种更为强大的方式实现一样的想法,函数pushBack 可以把任意行的文本(本质上)压入给连接。

压栈操作类似堆栈,因此一个读请求首先使用从最近压入的文本行,然后才是早期压入的行,最后读连接自己。一旦一个压入行已经读完,它会被清除掉。通过函数 pushBackLength可以查看处理中的压入行当数目。下面是一个简单的例子

     > zz <- textConnection(LETTERS)

     > readLines(zz, 2)

     [1] "A" "B"

     > scan(zz, "", 4)

     Read 4 items

     [1] "C" "D" "E" "F"

     > pushBack(c("aa", "bb"), zz)

     > scan(zz, "", 4)

     Read 4 items

     [1] "aa" "bb" "G"  "H"

     > close(zz)

压栈操作仅适用于文本输入模式的连接。

Hits:Loading...

special topic