gpt4 book ai didi

elixir - 如何从 Elixir 中的元组列表中提取整数?

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

我正在尝试从 Elixir 中的 ODBC 数据库获取计数。我可以看到我的结果返回,但是,我不知道如何提取该值。

{:ok, conn} = :odbc.connect('DSN=mydsn;UID=myuid;PWD=mypwd', [])
{:selected, _colNames, rows} = :odbc.sql_query(conn, 'select count(*) from mytable')

{:selected, ['COUNT'], [{'182'}]}

如何得到 182 作为整数?

我得到的最接近的是获取内部元组:

hd(rows)

{'182'}

最佳答案

有不同的可能解决方案,具体取决于您是对这个特定案例感兴趣还是对更广泛的方法感兴趣。

在此特定实例中,由于 rows 预计是一个包含单个元组和单个值的列表,因此您可以利用模式匹配来提取值。

{:selected, _, [{count}]} = {:selected, ['COUNT'], [{'182'}]}

从此时起,count 将匹配 '182'。但请注意,'182'"182"

不同
"182" == '182'
false

正如 Elixir 文档中所解释的,'182' is a char-list"182" 是一个字符串。因此你不能使用 String.to_integer直接,因为它会失败。

String.to_integer(count)
** (ArgumentError) argument error
:erlang.binary_to_integer('182')

您首先需要使用List.to_integer(count)或者将其转换为字符串,然后转换为整数。

List.to_integer(count)
182

String.to_integer(to_string(count))
182

如果元组包含多个值(这意味着查询返回多个值作为结果),则此解决方案可能无法直接适用。然而,这是一个起点,您可以根据自己的需求进行调整。

关于elixir - 如何从 Elixir 中的元组列表中提取整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32958246/

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