相关疑难解决方法(0)

你如何扩展/继承elixir模块?

假设一个elixir库定义:

defmodule Decoder do

  def decode(%{"BOOL" => true}),    do: true
  def decode(%{"BOOL" => false}),   do: false
  def decode(%{"BOOL" => "true"}),  do: true
  def decode(%{"BOOL" => "false"}), do: false
  def decode(%{"B" => value}),      do: value
  def decode(%{"S" => value}),      do: value
  def decode(%{"M" => value}),      do: value |> decode
  def decode(item = %{}) do
    item |> Enum.reduce(%{}, fn({k, v}, map) ->
      Map.put(map, k, decode(v))
    end)
  end
end
Run Code Online (Sandbox Code Playgroud)

我想定义一个模块MyDecoder,它只是def decode向上面的模块添加一个.在oo语言中,这将通过某种继承/ mixin/extends来完成.

我如何在长生不老药中做到这一点?

elixir

7
推荐指数
3
解决办法
7044
查看次数

标签 统计

elixir ×1