【发布时间】:2013-06-08 12:49:50
【问题描述】:
我发现 procs 和 lambdas 可以用作短方法和辅助模块的替代品。我将不属于其他任何地方的方法放入一个文件中,该文件只是分配给常量的过程列表。例如,init.rb 需要一个文件helper_procs.rb,它包含以下内容:
RED_TEXT = proc{|t| "\e[31m#{t}\e[0m"}
GREEN_TEXT = proc{|t| "\e[32m#{t}\e[0m"}
YELLOW_TEXT = proc{|t| "\e[33m#{t}\e[0m"}
CURRENT_TIME = proc do
date = Time.now.to_s.split(' ')[0].split('-').reverse.join('-')
time = Time.now.to_s.split(' ')[1]; "#{time} (#{date})"
end
然后,在程序中的任何地方(在不同的文件中),我都会这样做:
puts GREEN_TEXT["A string!"]
puts CURRENT_TIME.call
这是不好的做法吗?有没有陷阱?
【问题讨论】:
标签: ruby lambda constants proc