Elixir 数据结构与模式匹配全解析
1. 数据结构的实现
在编程中,数据是核心。为了能够轻松地存储、读取和修改数据,需要创建清晰的数据结构,这有助于提升软件应用的可读性和可维护性。
在 Ruby 中,作为面向对象的语言,通常会编写包含实例变量和公共或私有方法的类,通过这些方法修改数据,并通过类来实现应用程序的领域逻辑。在运行时,类会被初始化为持有特定数据集的对象。
而 Elixir 是函数式语言,没有类,且数据是不可变的。不过,可以利用模块、函数和结构体来实现清晰的数据层。
以下是一个 Sms 结构体的示例:
defmodule Examples.Structs.Sms do
@enforce_keys [:from, :to]
defstruct @enforce_keys ++ [:body, status: "delivered"]
def other_party(sms) do
case sms.status do
"delivered" -> sms.to
"received" -> sms.from
end
end
end
在 IEx 中尝试使用:
iex> sms = %Examples.Structs.Sms{}
** (ArgumentError) the following keys must also be given when
b
超级会员免费看
订阅专栏 解锁全文
33

被折叠的 条评论
为什么被折叠?



