Многострочный комментарий в Elixir

Большинство языков допускают блочные комментарии и многострочные команды.

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

<!-- 
Warning, brave programmer:
Here be dragons.
-->

В "Эликсире" ближе всего я нашел следующее:

http://elixir-lang.org/docs/v1.0/eex/

EEx smartengine <% #comments %> кажется <% #comments %> из источника, даже если он многострочный. Тем не менее, это всего лишь обходной путь.

Есть ли в Elixir функция многострочного комментария или способ указать компилятору отбрасывать текст из скомпилированного файла .beam?

Ответ 1

Эликсир не имеет многострочных комментариев.

Однако один из наиболее распространенных вариантов использования многострочных комментариев - это документирование модулей и функций, для которых вы можете использовать атрибуты модуля @doc и @moduledoc вместе с heredocs.

defmodule MyModule do
  @moduledoc """
  This module is great at X
  """

  @doc """
  Frobnicates the given string.
  """
  def frobnicate(s) do
  end
end

Ответ 2

Макросы могут помочь в некоторой степени:

defmodule Comment do
  defmacro comment(_text) do
  end
end

defmodule TestComment do
  import Comment

  comment """
  Module
  Comment
  """

  def func do
    comment """
    Function
    Comment
    """
  end
end

Ответ 3

Я пытаюсь просто использовать "", чтобы быстро комментировать код a la Python, не превращая его в документацию

"""
def some_function() do
  some_code    
end
"""

Ответ 4

Вы можете просто использовать атрибуты модуля для многострочных комментариев, не требуется макрос. Обычно я использую следующее для документирования/комментирования частных функций:

@docp """
This is my
multi line
comment
"""