web-dev-qa-db-fra.com

Commentaire multiligne dans Elixir

La plupart des langues autorisent les commentaires de bloc et les commandes multilignes.

Par exemple, un commentaire multiligne en HTML ressemble à ceci:

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

Dans Elixir, la chose la plus proche que j'ai trouvée vient d'EEx ( docs ).

Moteur intelligent EEx <% #comments %> semblent être rejetés de la source, même s'ils sont multilignes. Cependant, ce n'est qu'une solution de contournement.

Elixir a-t-il une fonction de commentaire multiligne ou un moyen de demander au compilateur de supprimer le texte du fichier .beam compilé?

28
Nathan Basanese

Elixir n'a pas de commentaires multilignes.

Cependant, un cas d'utilisation très courant pour les commentaires multilignes est la documentation des modules et des fonctions, pour lesquels vous pouvez utiliser les attributs de module @doc et @moduledoc avec heredocs .

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

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

Les macros peuvent aider ici dans une certaine mesure:

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
11
Dimagog

J'essaie simplement d'utiliser "" "pour commenter rapidement le code à la Python, sans le transformer en documentation

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

Vous pouvez simplement utiliser des attributs de module pour les commentaires multilignes, aucune macro n'est requise. J'utilise généralement les éléments suivants pour documenter/commenter des fonctions privées:

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