Elixir 不使用 enum.each 更新地图集中的值

2023-12-08

map_set = MapSet.new()
Enum.each(filtered_list, fn x -> map_set = MapSet.put(MapSet.new(map_set),x)

这里的filtered_list是一个包含字符串的列表,但是当我打印map_set时它返回一个空集。为什么?


对于中的每个项目filtered_list您正在回调函数的范围内创建一个新的 MapSet。你无法重新绑定map_set回调函数中的上部作用域(尽管您可以读取它,但重新绑定它只会创建一个新的作用域变量)。相反,您应该使用表达式的返回值。例如

filtered_list = ["foo", "bar"]
map_set = MapSet.new()         # this is actually redundant 

map_set = Enum.reduce(filtered_list, map_set, fn filter, map_set ->
  MapSet.put(map_set, filter)
end)

这是真的if, case, cond,...您使用表达式的返回值。

something = "foo"

if true do
  something = something <> "bar"
end

# it's still foo
something

如果你想重新绑定something你必须使用的返回值if表达

something = "foo"

something =
  if true do
    something <> " bar"
  end

# is "foo bar"
something

顺便说一句,你可以通过filtered_list to MapSet.new/1如果您需要任何转换,您可以使用MapSet.new/2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elixir 不使用 enum.each 更新地图集中的值 的相关文章

  • 在 Elixir 中将映射转换为关键字列表

    我有一张以下形式的地图 browser name gt Chrome platform gt linux 我需要将其转换为关键字列表 browser name Chrome platform linux 实现这一目标的最佳方法是什么 这行不
  • 在 Elixir 中运行 shell 命令

    我想通过我的 Elixir 代码执行一个程序 对给定字符串调用 shell 命令的方法是什么 是否存在非特定于平台的内容 以下是执行不带参数的简单 shell 命令的方法 System cmd whoami gt lukas n 0 查看有
  • 从映射中添加/删除键值对

    如何在 Elixir 映射中添加 和删除 键值对 这不起作用 map a 1 b 2 c 3 map d 4 添加到地图 Use Map put map key value https hexdocs pm elixir Map html
  • 当作为函数参数传递时,elixir 是否会生成映射的副本?

    换句话说 我想知道在 Elixir 中 映射是通过值还是通过引用传递给函数 鉴于 Elixir 的无副作用原则 我怀疑这是有价值的 但是大地图不会造成巨大的重复效率低下吗 在此先感谢您的帮助 由于 Elixir 中的所有术语都是不可变的 因
  • “!”、“?”、“_”和“.”是什么意思? Elixir 中的语法

    我需要帮助理解 Elixir 中的以下语法 and 这些语法在 Elixir 的功能中起什么作用 例如Repo get 我不确定它们是否只是函数名称 或者有一个角色 虽然我知道 用于调用匿名函数 和 对于任何或可变的 失败时引发异常的函数约
  • Elixir GenServer 并行handle_call

    Phoenix框架上有一个应用程序 需要 GenServer 它将检查一些值 这些值的验证从控制器开始 来自客户端的请求 GenServer 值检查 客户端接收响应 一旦handle call是同步的 那么当10个客户端同时调用10个han
  • Dialyzer 无法识别使用多态类型的函数中的错误

    背景 我正在尝试使用透析器进行多态打字 作为一个例子 我正在使用著名的Option类型 又名 Maybe Monad 现在在许多其他语言中都很流行 defmodule Test do type option t some t nothing
  • 仅针对使用通道而定制的 Phoenix 应用程序如何在多台机器上扩展?使用HAProxy?如何向所有节点广播消息?

    我将节点应用程序纯粹用于带有 Redis PubSub 的 socket io 通道 目前我将其分布在 3 台机器上 并由其中一台机器上的 nginx 负载平衡提供支持 我想用 Phoenix 应用程序替换这个节点应用程序 而且我对 erl
  • 如何通过 SSL 从 Phoenix Web App 连接到 PostgreSQL?

    When trying to run Elixir Phoenix Web Application using PostgreSQL Database hosted 3rd party Database as a Service Azure
  • 如何在 Elixir 中截断字符串?

    我正在使用长生不老药的鼻涕虫 想法是 我有一个字符串 a zA Z0 9 用连字符分隔的单词 喜欢 string another long string to be truncated and much text here 我想确保最大字符
  • 创建新的保护子句

    在 Elixir 中 我将如何为函数创建新的保护子句 显然 我已经看到你不能只调用 a 中的任何函数when声明 但如果能够做这样的事情那就太好了 defmodule Player do def play card player do de
  • 分配 @changeset 在 eex 模板中不可用

    我正在尝试学习包含 Ecto Model 的 Phoenix 表单系统 但我遇到了一个无法通过的问题 我创建了一个表格 div class jumbotron div
  • Phoenix 编程:未定义函数 page_path/2

    我的网络应用程序遇到问题 出现以下编译错误 Compilation error on file web controllers auth ex CompileError web controllers auth ex 49 undefine
  • 使用 Elixir 设置日期格式

    我正在尝试将 Timex 模块格式化为某种外观 我正在尝试获取今天的日期 但我希望它的格式如下 2017 12 12 年 月 日 在 ruby 中 我会去 strftime 类 但我不知道如何使用 Elixir 来做到这一点 目前的尝试 T
  • Elixir 中的多行注释

    大多数语言都允许块注释和多行命令 例如 HTML 中的多行注释如下所示 在 Elixir 中 我发现的最接近的东西来自 EEx docs https hexdocs pm eex EEx html EEx智能引擎似乎从源中被丢弃 即使它们是
  • Elixir 中的小数四舍五入

    我有这个十进制数 Elixir c1 Decimal div a1 b1 gt Decimal lt 0 006453859622556080696687234694 gt 如何将其四舍五入为小数点后位数较少的较短数字 正如 Dogbert
  • Elixir - 尝试/捕获 vs 尝试/救援?

    背景 Both try rescue and try catch是 Elixir 中的错误处理技术 根据相应章节 http elixir lang org getting started try catch and rescue html在
  • Phoenix:在模板内分配值的渲染模板

    我正在尝试使我的应用程序干燥且模块化 但是 当我尝试将一个组件 小模板 放入另一个模板 较大的模块 中 该组件接收调用 实例化 时传递的动态值时 我收到此错误 assign conn not available in eex templat
  • 如何获得 Elixir 中每种类型的最小值和最大值

    如何获得 Elixir 中每种类型的最小值和最大值 例如整数 浮点数和字符串的最大可能长度 我知道在C中它的定义是limits h as INT MIN INT MAX等等 关于 Elixir 中这些类型的限制的文档在哪里 Elixir 实
  • 延迟连接可枚举的列表

    我想编写一个类似于 List concat 1 的函数 它接受可枚举的列表并将连接的列表作为连续流发出 它会像这样工作 iex gt 1 3 gt Stream map 1 gt Enum to list 1 2 3 iex gt 1 3

随机推荐

  • 具有重复数字的序列[重复]

    这个问题在这里已经有答案了 Data 我有一个data frame看起来像这样 df lt data frame id c 1 10 color c rep red 5 rep blue 5 df gt id color gt 1 1 re
  • 使用 django 查询返回活动时区中的日期时间

    我试图从表中检索最后 n 小时的行并在给定时区中打印它们的日期时间 给出打印日期时使用的时区 我试图使用 activate 使 django 返回具有正确时区的日期时间 但它返回 UTC 格式的日期 这是我当前的代码 min time da
  • Android 中如何实现通知功能?

    我正在 Android 上做一个帮助台应用程序 我想实现未读票证的通知 客户建议或投诉 在此应用程序的 iPhone 版本中 即使该应用程序未在应用程序图标本身上打开未读票据计数器 在 Android 中是否有可能 如果是这样 请帮助我像
  • QDate - 错误的年份

    我有以下情况 QDate fixDate QDate fromString QString 270912 ddMMyy 返回的年份是1912 我不明白为什么以及如何获得正确的年份 提前致谢 两位数年份始终解释为19xx 所以你可以通过YYY
  • Android并发数据库操作——“数据库被锁定”

    我正在编写一个具有 在线模式 的应用程序 即根据需要下载 解析数据并将其插入到 SQLite 数据库中 所有这些都是由服务执行的 该应用程序由多个请求服务更新数据的活动组成 不同的数据取决于活动 当用户浏览活动时 无需等待服务完成 很容易获
  • 比 MySQL 中的 UUID 更短的非重复字母数字代码

    当我插入一条记录时 MySQL数据库是否可以生成仅由数字和字母组成的5或6位数字代码 如果是这样怎么办 就像 goo gl bit ly 和 jsfiddle 一样 例如 http bit ly 3PKQcJ http jsfiddle n
  • Cakephp 和对多个结果集进行分页

    当在一个操作中调用一次 this gt paginate 时 我的分页工作正常 但它似乎不能很好地支持多次调用 这就是我想做的 function admin index published this gt pagination Post a
  • 核心动画围绕点旋转

    我想让 IBOutlet 围绕父视图中的特定点旋转 目前我只知道如何围绕锚点旋转它 但是 我想使用对象图层之外的点 旋转角度是相对于设备从该点出发的方向计算的 void viewDidLoad super viewDidLoad locat
  • 合并两个单独的 MySQL 查询的结果

    我正在尝试执行两个单独的数据库查询并将结果返回到表单 每个结果都写入一个表中 我希望能够将两个查询合并为一个查询 并按任务编号对结果进行排序 第一个查询 Booking Date date d m Y driver SESSION user
  • “从未使用过不可变值‘context’的初始化,请考虑替换对‘_’的赋值或将其删除

    我很快将变量声明为 let context LAContext LAContext 它会发出警告 从未使用过不可变值 context 的初始化 请考虑替换对 的赋值或将其删除 一切都在错误消息中 值 从未使用过 您的变量没有在任何地方使用
  • 将 Quartz 连接到 MS Sql Server

    我对 Quartz Job Scheduler 相当陌生 我可能会问一些愚蠢的问题 但是 我在将 Quartz Server 2010 连接到 MS SQL Server 2012 时遇到问题 我创建了几个工作正常的作业 但无法创建与 SQ
  • 字符串中当前位置左侧的字符位置

    从字符串中的某个任意位置 我需要找到距离我的位置左侧最近的字符位置 如果我想向右执行此操作 我可以使用 IndexOf 但我不确定如何向左做 我想出的两种方法只是从我的位置开始的递减循环 或者将字符串反向并使用正常的 IndexOf 其他人
  • 列表视图适配器中的按钮

    任何人都可以解决我的问题 经过 2 天的努力 我终于得到了 70 的输出 Exp 我有列表视图 其数据来自服务器 列表视图内部有一些文本 按钮和滚动索引 A BC D E F G 问题 按钮不起作用意味着当我单击它时 如果添加以下代码 它看
  • 转编译为另一种语言[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 代码转编译的典型方式有哪些 目前 我正在编写一种简单的编程语言 其处理方式是递归的 循环遍历一个节点列表 假设当前节点是一个变量节点 它会调用一个emit variable no
  • .NET UIElement.TranslatePoint 的 UWP 等效项

    我希望获取 UIElement 相对于其容器的位置 以将图像覆盖在其顶部 System WIndows 命名空间中的 UIElement 正是我想要的 UWP 中的等效项是什么 您可以使用UIElement TransformToVisua
  • 如何更改线性布局与相对布局中文本视图和按钮的顺序?

    我对 stackoverflow 完全陌生 对 Android 移动开发也只有几周的时间 非常感谢 stackoverflow 我 90 的以 Android eclipse 开头的 google 搜索都是在这里找到的 现在开始追逐 我有一
  • 为什么从服务调用时 GetWindowThreadProcessId 返回 0?

    在控制台应用程序中使用以下类 并且至少有一个记事本实例正在运行时 GetWindowThreadProcessId正确返回非零线程 ID 但是 如果 Windows 服务中包含相同的代码 GetWindowThreadProcessId总是
  • Java 中的 readline() 返回 null

    我正在尝试读取 Java 程序中的标准输入 我期待一系列数字后跟换行符 例如 6 9 1 当通过 eclipse 内置控制台提供输入时 一切顺利 但是当使用 Windows 命令行时 程序会打印 Received 6 Received nu
  • 适用于大型 XML 的高效解析器

    我有非常大的 XML 文件需要处理 我想将它们转换为带有颜色 边框 图像 表格和字体的可读 PDF 我的机器上没有太多资源 因此 我需要我的应用程序能够非常优化地寻址内存和处理器 我做了一个谦虚的研究来决定要使用的技术 但我无法决定什么是最
  • Elixir 不使用 enum.each 更新地图集中的值

    map set MapSet new Enum each filtered list fn x gt map set MapSet put MapSet new map set x 这里的filtered list是一个包含字符串的列表 但