先看Ruby参考里面对eval的解释:
eval(expr[, binding[, fname[, lineno=1]]])
把字符串expr当作Ruby程序来运行并返回其结果
c= [3,3,56,8745,3]
c.each do |t|eval("@cc_#{t} = #{t}")
eval("puts @cc_#{t} + 10")
end
应该用下面这种
c= [3,3,56,8745,3]
c.each do |t|eval("@cc_#{t} = t")
eval("puts @cc_#{t} + 10")
end
queue = @@b.queue(t)
queue.bind(@@common_exch)
eval("@@client_#{t}= queue)")
#尽量不要在eval 中处理 不建议下面这种
queue = @@b.queue(t)
queue.bind(@@common_exch)
eval("@@client_#{t}= @@b.queue(t)")
eval("@@client_#{t}.")
end
本文探讨了Ruby语言中eval函数的应用场景及注意事项。通过示例代码对比展示了如何正确利用eval来动态创建变量和对象,同时强调了避免在eval中处理不确定内容的重要性。
1238

被折叠的 条评论
为什么被折叠?



