转载的一个问题 听说这是ruby 希望得到解释
@success = Class.new
success = lambda { |v|
if @success.respond_to? v.to_sym
v.capitalize
else
raise"Invent and experiment."
end
}
key = %w[audacious creative curious safe].collect(%success)
p keys.join(",")
=================================
原帖地址http://topic.csdn.net/u/20091212/14/a2dbcda0-0041-4470-9729-3be1fe7eebe0.html?seed=248436667&r=61885104#r_61885104
拜托大家帮我解释下 谢谢
[解决办法]
@success = Class.new #实例化一个类对象success = lambda { |v| if @success.respond_to? v.to_sym v.capitalize else raise"Invent and experiment." end } #labda函数,v是函数的参数,条件里面判断@success这个类是不是有v这个方法?如果有的话就把v的首字母变成大写否则抛出异常key = %w[audacious creative curious safe].collect(%success) #%w[]是声明一个数组。把数组中的每个元素作为success的参数传递进去。p keys.join(",") 此处的keys我怀疑是key。就是输出key数组的元素,元素之间用","分开