Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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如何解析lambda或block中的'self'关键字?_Ruby_Self - Fatal编程技术网

ruby如何解析lambda或block中的'self'关键字?

ruby如何解析lambda或block中的'self'关键字?,ruby,self,Ruby,Self,就像JavaScript一样,在ruby中,lambda可以通过函数传递 在JavaScript中,此将解析为调用方对象 但是ruby呢?同样的机制是否也适用于ruby的lambda或block?怎么用?你能给我一些示例代码吗 顺便说一句,我已经读过了,但是我没有从中找到任何有用的信息。在Ruby中,self是词汇范围,即self在一个块或lambda中,无论它在同一个地方是什么,而不在块或lambda中 类(1)在JavaScript中不是那么简单,考虑函数。原型。绑定< /代码>或函数。原型

就像JavaScript一样,在ruby中,lambda可以通过函数传递

在JavaScript
中,此
将解析为调用方对象

但是ruby呢?同样的机制是否也适用于ruby的lambda或block?怎么用?你能给我一些示例代码吗


顺便说一句,我已经读过了,但是我没有从中找到任何有用的信息。

在Ruby中,
self
是词汇范围,即
self
在一个块或lambda中,无论它在同一个地方是什么,而不在块或lambda中


<代码>类(1)在JavaScript中不是那么简单,考虑<代码>函数。原型。绑定< /代码>或<代码>函数。原型。调用<代码>或箭头函数。(2)
f=->{};f、 binding.receiver
可能值得一看,然后。简而言之,我喜欢您的对象ID:-)
self
在lambda内部,没有特殊技巧的进程和块的行为与JavaScript arrow函数中的
this
相同。@3limin4t0r:是的,arrow函数中对
this
范围的更改(而不是简单地使arrow函数对函数表达式进行语法糖化)之所以引入闭包,是因为这种行为是“理智的”行为,这不仅是Ruby的行为,也是大多数带有闭包的语言的行为。