less than 1 minute read

iex> :dets.open_file(:storage, [{:type, :set}, {:file, "file"}])
** (ArgumentError) argument error

argument error 뜨면 속 터진다. 원인을 찾아 헤매야 한다.

"file" 인자가 잘못됐다. 문자열로 binary를 사용해서 에러가 났다. elixir에서 erlang 함수를 호출했기 때문에 binary가 아니라 charlist를 인자로 넘겨야 한다. elixir에서 byte 시퀀스를 binary라고 부른다.

iex> :dets.open_file(:storage, [{:type, :set}, {:file, 'file'}])

'file' 인자를 넘기면 된다. Kernel.to_charlist/1 함수를 호출해도 된다.

참고