Ruby on rails 将2个参数返回到另一个方法中

Ruby on rails 将2个参数返回到另一个方法中,ruby-on-rails,ruby,Ruby On Rails,Ruby,我用不同的方法解释了几个字符串,但它们都以相同的格式返回两个值。然后我想将这两个值直接传递到另一个方法中。这可能吗?我不断收到一个错误,说“期望2个参数,得到1” 使用*来分解结构,一个选项: step2(*step1("this is a string")) # Note required parens around step1 param 像这样返回多个参数是语法糖;您实际上返回了一个数组 如果你想建立DSL,你可能需要考虑采用不同的方式。 如果您只是在使用非DSL ish API,我可能

我用不同的方法解释了几个字符串,但它们都以相同的格式返回两个值。然后我想将这两个值直接传递到另一个方法中。这可能吗?我不断收到一个错误,说
“期望2个参数,得到1”


使用
*
来分解结构,一个选项:

step2(*step1("this is a string")) # Note required parens around step1 param
像这样返回多个参数是语法糖;您实际上返回了一个数组

如果你想建立DSL,你可能需要考虑采用不同的方式。


如果您只是在使用非DSL ish API,我可能会更改方法签名并在
step1
中分解数组,例如
val1,val2=arg1
并跳过一些复杂度。

使用
*
来分解数组,一个选项:

step2(*step1("this is a string")) # Note required parens around step1 param
像这样返回多个参数是语法糖;您实际上返回了一个数组

如果你想建立DSL,你可能需要考虑采用不同的方式。


如果您只是在使用非DSL ish API,我可能会更改方法签名并在
step1
中分解数组,例如
val1,val2=arg1
并跳过一些复杂度。

使用
*
来分解数组,一个选项:

step2(*step1("this is a string")) # Note required parens around step1 param
像这样返回多个参数是语法糖;您实际上返回了一个数组

如果你想建立DSL,你可能需要考虑采用不同的方式。


如果您只是在使用非DSL ish API,我可能会更改方法签名并在
step1
中分解数组,例如
val1,val2=arg1
并跳过一些复杂度。

使用
*
来分解数组,一个选项:

step2(*step1("this is a string")) # Note required parens around step1 param
像这样返回多个参数是语法糖;您实际上返回了一个数组

如果你想建立DSL,你可能需要考虑采用不同的方式。


如果您只是在使用非DSL ish API,我可能会更改方法签名,并在
step1
中分解数组,例如
val1,val2=arg1
,并跳过一些复杂度。

由于传递单个参数,因此会出现此错误,您可以按如下方式执行此操作:

def step1 (text)
  return "step 1 called.."
end

def step2 (val1, val2)
   return "step 2 called.."
end

step2(method(:step1),"this is a string")

您之所以会出现此错误,是因为您传递的是单个参数,您可以按如下方式执行此操作:

def step1 (text)
  return "step 1 called.."
end

def step2 (val1, val2)
   return "step 2 called.."
end

step2(method(:step1),"this is a string")

您之所以会出现此错误,是因为您传递的是单个参数,您可以按如下方式执行此操作:

def step1 (text)
  return "step 1 called.."
end

def step2 (val1, val2)
   return "step 2 called.."
end

step2(method(:step1),"this is a string")

您之所以会出现此错误,是因为您传递的是单个参数,您可以按如下方式执行此操作:

def step1 (text)
  return "step 1 called.."
end

def step2 (val1, val2)
   return "step 2 called.."
end

step2(method(:step1),"this is a string")


哇,什么?这是一个非常不同的事情。我认为他想调用一个方法作为另一个方法的参数,错误是因为pass.OP的参数no是错误的,它说他们想从一个方法返回多个值,并将它们用作另一个方法的参数,这可以通过解构实现。将一个作为方法传递是非常不同的,并且没有帮助,除非在方法中实际调用它—例如,在您的示例中,
step1
的(单个)返回值被完全忽略。并不是说你不能修改你的例子来实际工作,但在我看来这是一个相当复杂的方法。哇,什么?这是一个非常不同的事情。我认为他想调用一个方法作为另一个方法的参数,错误是因为pass.OP的参数no是错误的,它说他们想从一个方法返回多个值,并将它们用作另一个方法的参数,这可以通过解构实现。将一个作为方法传递是非常不同的,并且没有帮助,除非在方法中实际调用它—例如,在您的示例中,
step1
的(单个)返回值被完全忽略。并不是说你不能修改你的例子来实际工作,但在我看来这是一个相当复杂的方法。哇,什么?这是一个非常不同的事情。我认为他想调用一个方法作为另一个方法的参数,错误是因为pass.OP的参数no是错误的,它说他们想从一个方法返回多个值,并将它们用作另一个方法的参数,这可以通过解构实现。将一个作为方法传递是非常不同的,并且没有帮助,除非在方法中实际调用它—例如,在您的示例中,
step1
的(单个)返回值被完全忽略。并不是说你不能修改你的例子来实际工作,但在我看来这是一个相当复杂的方法。哇,什么?这是一个非常不同的事情。我认为他想调用一个方法作为另一个方法的参数,错误是因为pass.OP的参数no是错误的,它说他们想从一个方法返回多个值,并将它们用作另一个方法的参数,这可以通过解构实现。将一个作为方法传递是非常不同的,并且没有帮助,除非在方法中实际调用它—例如,在您的示例中,
step1
的(单个)返回值被完全忽略。并不是说你不能修改你的例子来实际工作,但在我看来,这是一个相当复杂的方法。我一直认为这被称为,在赋值时使用“destructuring:
a,*b=step2(…)
。我一直认为这被称为,在赋值时使用“destructuring:
a,*b=step2(…)
。我一直看到被称为的,其中“destructuring”用于赋值:
a,*b=step2(…)
。我一直看到被称为的,其中“destructuring”用于赋值:
a,*b=step2(…)
。在Ruby中使用
return
关键字是多余的,如果它是方法的最后一行,因为这是默认返回的内容。如果是方法的最后一行,那么在Ruby中使用
return
关键字是多余的,因为这是默认返回的内容。如果是方法的最后一行,那么在Ruby中使用
return
关键字是多余的,在Ruby中,如果
return
关键字是方法的最后一行,那么在Ruby中使用它是多余的,因为这是默认返回的。