Ruby on rails ruby函数中*的含义

Ruby on rails ruby函数中*的含义,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个关于函数调用中*的测量的基本问题,我无法从在线文档中理解: def self.new(*args, &block) 在上面的函数调用中,*args是什么意思?这意味着您可以传递任何数量的参数,这些参数将存储在此方法内部的args表中。看一看:这意味着您可以传递任何数量的参数,这些参数将存储在此方法内部的args表中。看一看:考虑以下方法 def user(user_name) puts user_name end 所以当你打电话的时候 user("RPV") Outpu

我有一个关于函数调用中*的测量的基本问题,我无法从在线文档中理解:

def self.new(*args, &block)

在上面的函数调用中,*args是什么意思?

这意味着您可以传递任何数量的参数,这些参数将存储在此方法内部的args表中。看一看:

这意味着您可以传递任何数量的参数,这些参数将存储在此方法内部的args表中。看一看:

考虑以下方法

def user(user_name)
  puts user_name
end
所以当你打电话的时候

user("RPV")

Output: 
RPV
=> nil
但是如果你通过了不止一个这样的论点呢

user("RPV", "Marek")
它将给出一个错误

1的参数2的数目错误

为了避免这种错误,splat*运算符很有帮助

def user(*user_name)
  puts user_name
end
当您传递多个参数时,它将在数组中处理并转换它

user("RPV", "Marek")

output:
RPV
Marek
nil
它将用户名设置为数组

def user(user_name)
  p user_name
end

user("RPV", "Marek")

output:

 ["RPV", "Marek"]

希望您能使用它。

考虑以下方法

def user(user_name)
  puts user_name
end
所以当你打电话的时候

user("RPV")

Output: 
RPV
=> nil
但是如果你通过了不止一个这样的论点呢

user("RPV", "Marek")
它将给出一个错误

1的参数2的数目错误

为了避免这种错误,splat*运算符很有帮助

def user(*user_name)
  puts user_name
end
当您传递多个参数时,它将在数组中处理并转换它

user("RPV", "Marek")

output:
RPV
Marek
nil
它将用户名设置为数组

def user(user_name)
  p user_name
end

user("RPV", "Marek")

output:

 ["RPV", "Marek"]
希望你能使用它