我发现 procs 和 lambdas 可以用作短方法和辅助模块的替代品。我将不属于其他任何地方的方法放入一个文件中,该文件只是分配给常量的过程列表。例如,helper_procs.rb
需要一个文件init.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
这是不好的做法吗?有陷阱吗?