gpt4 book ai didi

ruby - 将字符串转换为ruby中的变量名

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:37 25 4
gpt4 key购买 nike

我有变量

 <% mon_has_two_sets_of_working_hours = 0 %>
<% tue_has_two_sets_of_working_hours = 0 %>
<% wed_has_two_sets_of_working_hours = 0 %>

我想动态地改变这些变量的值。

 <% days_array = ['mon', 'tue', 'wed'] %>

<% days_array.each do |day| %>
<% if condition? %>
# here i want to set %>
<% "#{day}__has_two_sets_of_working_hours" = 1 %>
end
end

该值未被分配。有什么方法可以动态地给变量赋值吗?

最佳答案

我认为没有办法做到这一点。有实例或类变量,但很少需要局部变量。

在您的情况下,您确实应该将数据散列。另外,这样的逻辑真的不属于erb。你想要这样的东西:

working_hour_sets = %w[mon tue wed thu fri sat sun].inject({}) do |hash, day|
hash[day]=0;
hash
end
# puts working_hour_sets #=> {"wed"=>0, "sun"=>0, "thu"=>0, "mon"=>0, "tue"=>0, "sat"=>0, "fri"=>0}

working_hour_sets.each do |day, value|
working_hour_sets[day] = 1 if condition?
end

关于ruby - 将字符串转换为ruby中的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4633764/

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