为什么 rails 个作业 (ApplicationJob) 使用 splat 运算符?
Why do rails jobs (ApplicationJob) use splat operator?
我使用 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 运算符?
感谢任何帮助!
perform 方法的构建及其使用完全取决于您;如果您删除 splat 运算符,您将不会错过任何事情,调用作业不会传递隐式参数或您应该使用 args.last 或类似的东西处理的任何内容。
无论如何,splat 运算符只为您提供与任何 ruby 方法相同的多功能性,并且 rails 将其用作占位符。
我使用 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 运算符?
感谢任何帮助!
perform 方法的构建及其使用完全取决于您;如果您删除 splat 运算符,您将不会错过任何事情,调用作业不会传递隐式参数或您应该使用 args.last 或类似的东西处理的任何内容。
无论如何,splat 运算符只为您提供与任何 ruby 方法相同的多功能性,并且 rails 将其用作占位符。