15、Elixir 数据抽象与并发编程入门

Elixir 数据抽象与并发编程入门

1. 数据抽象与协议实现

1.1 协议未实现问题

在 Elixir 中,当尝试打印 TodoList 实例时,可能会遇到 String.Chars 协议未实现的错误。例如:

iex(9)> IO.puts(TodoList.new())
** (Protocol.UndefinedError) protocol String.Chars not implemented

这表明 TodoList 类型没有实现 String.Chars 协议,因此无法直接打印。

1.2 实现协议的方法

要为特定类型实现协议,可以使用 defimpl 宏。以下是为整数实现 String.Chars 协议的示例:

defimpl String.Chars, for: Integer do
  def to_string(term) do
    Integer.to_string(term)
  end
end

实现步骤如下:
1. 调用 defimpl 宏。
2. 指定要实现的协议和相应的数据类型。
3. 在 do/end 块中实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值