Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助理解Ruby dynamics编程吗_Ruby - Fatal编程技术网

需要帮助理解Ruby dynamics编程吗

需要帮助理解Ruby dynamics编程吗,ruby,Ruby,我需要帮助理解arr.partition(&a.method('>')正在做什么。我知道它是动态的,我们将一个方法作为块传递给array.partition方法。另外,如果不使用元编程,我将如何实现同样的功能 a=13 arr=[10,11,13,22] left,right= arr.partition(&a.method('>')) p left p right 输出 [10, 11] [13, 22] [Finished in 0.3s] 它与元编程无关,它是一个简单的好

我需要帮助理解
arr.partition(&a.method('>')
正在做什么。我知道它是动态的,我们将一个方法作为块传递给array.partition方法。另外,如果不使用元编程,我将如何实现同样的功能

a=13
arr=[10,11,13,22]
left,right= arr.partition(&a.method('>'))
p left
p right
输出

[10, 11]
[13, 22]
[Finished in 0.3s]

它与元编程无关,它是一个简单的好ruby

left, right = arr.partition(&a.method('>'))
这里真正发生的是:

  • 获取类的实例,即(通过调用
    13
  • 通过调用将其转换为proc(由于
  • 将此过程作为块传递给
逐步:

> 13.method(:>)
#⇒ Integer#>(arg1)
> p = 13.method(:>).to_proc
#⇒ #<Proc:0x005652125f8b50 (lambda)>
> [10, 11, 13, 22].partition &p
#⇒ [[10, 11], [12, 13]]

它与元编程无关,它是一个简单的好ruby

left, right = arr.partition(&a.method('>'))
这里真正发生的是:

  • 获取类的实例,即(通过调用
    13
  • 通过调用将其转换为proc(由于
  • 将此过程作为块传递给
逐步:

> 13.method(:>)
#⇒ Integer#>(arg1)
> p = 13.method(:>).to_proc
#⇒ #<Proc:0x005652125f8b50 (lambda)>
> [10, 11, 13, 22].partition &p
#⇒ [[10, 11], [12, 13]]

我从你的答案中得到解释,我昨天从你的一个答案中想到了这个答案。谢谢。现在这一行很混乱,
通过调用方法#to_proc(由于&)将其转换为proc
它没有转换为由于&,呃?当你调用
到_proc
?@Rajagopalan时,它正在转换,实际上两者都是;我已将
添加到_-proc
p=13。方法(:>)。为了清晰起见,添加到_-proc
(也许我不应该),并且
&
确实将参数转换为
proc
,但由于
proc>到_-proc
返回
self
,因此,一切按预期进行。我从你的答案中得到解释,我昨天从你的一个答案中想到了这个答案。谢谢。现在这一行很混乱,
通过调用方法#to_proc(由于&)将其转换为proc
它没有转换为由于&,呃?当你调用
到_proc
?@Rajagopalan时,它正在转换,实际上两者都是;我已经将
添加到_-proc
p=13。方法(:>)。为了清晰起见(也许我不应该,)添加到_-proc
,并且
确实将参数转换为
proc
,但是由于
proc#到_-proc
返回
self
,一切都按预期进行。