elixir 中 inet parse_address 命令的语法错误

shu*_*l92 2 erlang elixir erlang-shell

我是Elixir 的新手。我的任务是检查给定的文件string是否为ip address or a number. 我发现inet有这个parse_address检查给定的字符串是否是一个 IP 地址并提供适当的响应。

我在iex终端上的代码如下

inet :parse_address("192.168.42.2")
Run Code Online (Sandbox Code Playgroud)

当我在终端上运行上述代码时,出现以下错误

 iex(1)> inet :parse_address("192.168.42.2").
 ** (SyntaxError) iex:1: syntax error before: '('
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

NoD*_*ame 6

它应该是

:inet.parse_address('192.168.42.2')
Run Code Online (Sandbox Code Playgroud)

因为模块名称只是原子,但在 erlang 中,它们以小写字母开头。

有很多关于 Erlang 互操作性主题的文章,其中一篇在这里 -> https://elixirschool.com/en/lessons/advanced/erlang/

  • @kiddorails 显然该函数需要 erlang 字符串,它们是 elixir 中的字符列表。 (3认同)