我通过建模棋盘游戏来学习Elixir,我有这个代码:
defprotocol Board do
def can_handle_move(self)
def handle_move(self, move)
end
defimpl Board, for: List do
def can_handle_move(self), do: Enum.empty?(self)
def handle_move(self, move), do: List.delete(self, move)
end
Run Code Online (Sandbox Code Playgroud)
它的实现看起来更复杂.实际上,can_handle_move只是Enum.empty?而且handle_move是公正的List.delete.Elixir有办法表达这个吗?就像是:
defimpl Board, for: List do
def can_handle_move = &Enum.empty?/1
def handle_move = &List.delete/2
end
Run Code Online (Sandbox Code Playgroud)
......不编译.我也试过没有defs.
elixir ×1