5
如何匹配和检查什么语法byte_size
等于12的长度模式handle_info()
?我可以在handle_info()
中使用这两种模式,例如。首先会检查新行的字符串,其次是byte_size
?模式匹配中byte_size的语法是什么?
实施例的代码,而不byte_size
图案:
def init(_) do
{:ok, []}
end
def handle_info({:elixir_serial, serial, "\n"}, state) do
{:noreply, Enum.reverse(state)}
end
def handle_info({:elixir_serial, serial, data}, state) do
Logger.debug "data: #{data}"
{:noreply, [data | state]}
end
我如何Concat的传入字符串来自:elixir_serial直到状态达到所需的12长?目前它不匹配,最后一个handle_info()中的数据包含不同长度的字符串。我已经尝试了<< state :: bytes-size(12)>>,但输出也是错误的。 – luzny
我正在将数据保存在我的代码片段中的Logger.debug的位置,它是处理匹配数据的正确位置吗? – luzny
是的,这是正确的地方。如果数据的大小是可变的,我就根本不会匹配长度。 –