gpt4 book ai didi

Elixir : Issue in defining Maps

转载 作者:行者123 更新时间:2023-12-02 07:59:41 25 4
gpt4 key购买 nike

我有一个预定义的 map ,其中有一个数字作为键及其值,我尝试通过在 CL 中创建如下所示的 map ,它工作正常,但是当我通过代码文件执行时,它会抛出类似的错误。

我得到一个错误提示

** (Protocol.UndefinedError) protocol String.Chars not implemented for %{1 => "I", 4 => "IV", 5 => "V", 9 => "VI", 10 => "X", 40 => "XL", 50 => "L", 90 => "XC", 100 => "C", 400 => "CD", 500 => "D", 900 => "CM", 1000 => "M"} of type Map
(elixir) lib/string/chars.ex:3: String.Chars.impl_for!/1
(elixir) lib/string/chars.ex:22: String.Chars.to_string/1
(elixir) lib/io.ex:654: IO.puts/2

当我尝试定义一个预定义的键值时。

defmodule DecimalToRoman do
def convert(decimal) do
roman_table = %{
1 => "I",
4 => "IV",
5 => "V",
9 => "VI",
10 => "X",
40 => "XL",
50 => "L",
90 => "XC",
100 => "C",
400 => "CD",
500 => "D",
900 => "CM",
1000 => "M"
}

IO.puts(roman_table)
end
end

DecimalToRoman.convert(2012)

我想用数字作为Key。

最佳答案

使用IO.inspect(roman_table)

IO.puts 要求参数要么是字符串,要么是任何实现了 String.Chars 协议(protocol)的东西,而 IO.inspect 可以打印任意 Elixir 。

core library implements String.Chars 用于 AtomBitStringListInteger float

关于 Elixir : Issue in defining Maps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59044803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com