2
「を」defimplする機能を渡します。は、私は次のコードしているオプション
だから私はこれを実行しようとしました:
# constants.ex
defmodule Constants do
@enumerables [List, Map]
def enumerables, do: @enumerables
end
# reversible.ex
import Constants, only: [enumerables: 0]
defprotocol Reversible do
def reverse(term)
end
defimpl Reversible, for: enumerables() do
def reverse(term), do: Enum.reverse(term)
end
そして、私はエラーを持っている:
== Compilation error in file lib/reversible.ex ==
** (FunctionClauseError) no function clause matching in Module.concat/2
The following arguments were given to Module.concat/2:
# 1
Reversible
# 2
[List, Map]
(elixir) lib/module.ex:562: Module.concat/2
lib/reversible.ex:8: (file)
(elixir) lib/kernel/parallel_compiler.ex:121:
anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1
この問題を解決するためにどのように?
は、私は解決策がで再実装 'defimpl'を伴うだろうと思いました何らかの形で引用符で囲まれています。あなたのソリューションはシンプルできれいです、ありがとう! –