|
|
1
27
大括号定义一个称为块的匿名函数。管道之间的标记是此块的参数。所需参数的数量取决于块的使用方式。每次对块进行计算时,需要块的方法都将基于调用它的对象传递一个值。 它与定义方法相同,只是它不存储在接受块的方法之外。 例如:
执行时将执行以下操作:
唯一的区别是块是动态定义的,而不是存储的。 例2: 以下陈述是等效的
我们使用匿名块,因为作为块传递的大多数函数通常特定于您的情况,不值得定义重用。 那么当一个方法接受一个块时会发生什么呢?这取决于方法。接受块的方法将通过以定义良好的方式从其调用对象传递值来调用块。返回的内容取决于需要块的方法。
例如:在
让我们来看一个接受带有两个参数的块的方法。
在这种情况下,每个键/值对都调用块,将键作为第一个参数传递,值作为第二个参数传递。 |
|
|
2
5
管道指定由调用块的函数填充值的参数。其中可以有零个或多个,您应该使用多少个取决于您调用的方法。 例如,每个带索引的_使用两个变量,将元素放在其中一个变量中,索引放在另一个变量中。 |
|
|
3
2
块参数遵循与方法参数(至少1.9)相同的所有约定:您可以定义可选参数、可变长度参数列表、默认值等。 pretty decent summary . 需要注意的一些事项:因为块在其定义的作用域中看到变量,如果传入与现有变量同名的参数,它将“隐藏”它-您的块将看到传入的值,并且原始变量将保持不变。
将在结尾处打印“10”。因为有时,即使不传递值(即要确保不会意外地从周围范围中删除变量),也可以在参数列表后面的分号后指定块局部变量名:
这里,“x”是块的局部,即使没有传入值。 |
|
|
Sudheera · 更改页面模板时Wordpress模板不可用 3 年前 |
|
|
NBlackout · Eclipse格式。在打开块的大括号之前删除新行 13 年前 |
|
|
Sherifftwinkie · 使用C中的块 13 年前 |
|
|
Alex · 阻止web服务器上的url(websphere) 13 年前 |
|
|
mrN vbence · Magento重新排列块不起作用 13 年前 |
|
|
zitix · 在Magento中的模型方法中获取前端PHTML模板的输出 13 年前 |