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
是的,這是正確的地方。如果數據的大小是可變的,我就根本不會匹配長度。 –