ruby – 在循环中循环并在深循环中分配变量

ruby – 在循环中循环并在深循环中分配变量,第1张

概述我有一块像这样的代码(这是工作版本) @full_user_schedule[0].attributes.each do |event_name, attending| if attending sessions_hash.each do |id, name| event_name = event_name.sub(name, id.to_s) if event_na 我有一块像这样的代码(这是工作版本)

@full_user_schedule[0].attributes.each do |event_name,attending|   if attending     sessions_hash.each do |ID,name|       event_name = event_name.sub(name,ID.to_s) if event_name.include? name      end     @user_schedule.merge!(event_name => attending)   endend

当我尝试在sessions_hash.each语句中设置变量event_ID时,我无法将其分配到该循环之外(获得未知变量警告).我想知道为什么会这样,以及如何规避它.

下面是一个失败的例子(事件虽然日志显示变量设置正确),但我没有在创建它的循环之外访问它.

@full_user_schedule[0].attributes.each do |event_name,name|       event_ID = event_name.sub(name,ID.to_s) if event_name.include? name      end     @user_schedule.merge!(event_ID => attending)   endend

我试图显式返回event_ID,但退出循环.我不明白的是什么?

解决方法 块实际上是一种匿名函数,因此它有自己的作用域,但它可以访问周围作用域中的变量.

只需在块启动之前初始化event_ID,使其成为父方法的元素.

event_ID = nil@full_user_schedule[0].attributes.each do |event_name,attending|   ...
总结

以上是内存溢出为你收集整理的ruby – 在循环中循环并在深循环中分配变量全部内容,希望文章能够帮你解决ruby – 在循环中循环并在深循环中分配变量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1279534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存