Синтаксическая ошибка для команды inet parse_address в elixir

Я новичок в elixir. Моя задача проверить, является ли данный string ip address or a number. Я обнаружил, что inet имеет этот parse_address, который проверяет, является ли данная строка IP-адрес или нет, и предоставляет соответствующий ответ.

Мой код на терминале iex выглядит следующим образом

inet :parse_address("192.168.42.2")

Когда я запускаю приведенный выше код на терминале, я получаю следующую ошибку

 iex(1)> inet :parse_address("192.168.42.2").
 ** (SyntaxError) iex:1: syntax error before: '('

Может ли кто-нибудь помочь мне с этой проблемой?


person shubhamagiwal92    schedule 05.09.2017    source источник


Ответы (1)


Так должно быть

:inet.parse_address('192.168.42.2')

потому что имена модулей — это просто атомы, но в erlang они начинаются со строчной буквы.

Существует множество статей, посвященных совместимости с Erlang, одна из них находится здесь -> https://elixirschool.com/en/lessons/advanced/erlang/

person NoDisplayName    schedule 05.09.2017
comment
Я думаю, что это должно быть :inet.parse_address('192.168.42.2'). Строка с дает {:error, :einval}. Интересно, почему так! - person kiddorails; 05.09.2017
comment
@kiddorails По-видимому, функция ожидает строк erlang, которые являются списками символов в эликсире. - person NoDisplayName; 05.09.2017