关于后端:elixir-0068-来去皆消息使用-StringIO-制造虚拟的-IO-设备

13次阅读

共计 426 个字符,预计需要花费 2 分钟才能阅读完成。

咱们晓得简直每个编程语言都会有打印输出的函数,elixir 也不例外,罕用的有 IO.puts, IO.inspect, IO.write 等等。然而你是否晓得, 这些函数都能够在减少一个参数在第一位,从而抉择不同的 IO 设施进行读写。

IO 设施在 elixir 外面也和一般过程一样,应用音讯通信。elixir 的规范库里自带了一个 StringIO 模块,它应用 GenServer 实现了 IO 设施的通信协议,咱们能够应用这个模块启动一个虚构 IO 设施。

iex(1)> {:ok, pid} = StringIO.open("in")
{:ok, #PID<0.111.0>}
iex(3)> IO.puts pid, "hello"
:ok
iex(4)> StringIO.flush pid
"hello\n"

StringIO 过程的状态里,蕴含 input 和 output,input 相当于是用户的输出,要应用 IO.read 这类函数去读取。而 output 相当于程序的输入,应用 IO.write 这类函数去写入。

正文完
 0