我想修改任务参数的值(例如,我希望参数成为符号)。但似乎rake任务参数是不可变的,这是正确的吗?
task :my_task,[:some_arg,:another_arg] do |cmd,args|
puts args[:some_arg].class
args[:some_arg]=args[:some_arg].to_sym
puts args[:some_arg].class
end
答案 0 :(得分:1)
在这里查看rake源https://github.com/ruby/rake/blob/master/lib/rake/task_arguments.rb,我们可以检查一下,方法[]
被覆盖:
# Find an argument value by name or index.
def [](index)
lookup(index.to_sym)
end
因此无法以这种方式修改参数。