为什么 rails 作业 (ApplicationJob) 使用 splat 运算符?



我使用 rails 生成器创建了我的第一个工作:

rails g job do_something

创建了作业文件:

class DoSomethingJob < ApplicationJob
queue_as :default
def perform(*args)
# Do something later
end
end

splat 运算符对我来说是新的(我知道它可以用来传递多个参数,它会将它们分组到一个数组中(。 我的问题是,为什么默认情况下作业带有 splat 运算符 -def perform(*args)?我的诱惑是简单地删除默认*args但我担心我可能会错过一些东西。

删除默认*args并像我为任何其他方法一样创建参数有什么问题吗?还是我需要在所有作业中使用 splat 运算符?

任何和所有的帮助感谢!

execute 方法的构造及其使用完全取决于您;如果您删除 splat 运算符,您不会错过任何事情,调用作业不会传递隐式参数或您应该使用 args.last 或类似的东西处理的任何内容。

无论如何,splat 运算符只为您提供与任何红宝石方法相同的多功能性,并且 rails 将其用作占位符。

相关内容

  • 没有找到相关文章

最新更新