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 块中实
超级会员免费看
订阅专栏 解锁全文

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



