2015-09-06 58 views
3

我已經在elixir中定義了一些結構,現在我想以我決定的方式比較這些結構。在Elixir中定義順序

基本上我想爲我定義的結構寫>>,> =,<,< =和==。

這可能嗎?

+0

默認情況下,存在所有這些運營商結構。你可以更具體地說明你想要完成什麼嗎? –

+1

我問,因爲你的問題表明你在想OO,而不是FP。 –

回答

2

不,這是不可能的。但是,您可以使用Enum.sort/2Enum.sort_by/2以任何方式進行分類。例如:

iex> Enum.sort_by [%{name: "foo"}, %{name: "bar"}], fn data -> data.name end 
[%{name: "bar"}, %{name: "foo"}] 

你也可以定義你的模塊中的比較功能,做了適當的比較,類似於花好月圓版本模塊的工作原理:

iex> Version.compare "1.0.0", "2.0.0" 
:lt