1
5
这不是魔法, 红宝石 只返回在结束时执行的操作返回的值。 它是在解析级别实现的SyncStrategicSugar:一个计算某些内容的语句隐式返回自身,不带任何关键字。 稍微澄清一下,你可以想象两者 抽象语法树 在这两个片段中:它们不会有所不同。 |
2
2
我觉得这不是一堆。函数的最终评估只是返回值,简单明了。只是你日常的红宝石句法糖。 |
3
1
我不明白为什么
堆栈
应要求返回结果。一个指向内存位置的简单指针就足够了。我想这通常会在登记簿上退回,比如
通过将函数的值赋给变量(或用它做其他事情),可以得到函数的返回值。这就是它的用途,也是唯一有效的方法。 不是 返回任何东西都非常简单:被调用的函数不会将任何东西放入返回位置(不管它是什么),调用方会忽略它。 |
4
1
实际上,返回在这里是特殊的,而不是标准的行为。考虑:
这段代码实际上有不止一个堆栈帧(至少是on for foo、one for array each和one for anonymous function passed to each)。返回的作用:它跳转到调用它的最外层词法范围(foo的结尾)的堆栈帧,并返回给定的值。如果您经常使用匿名函数,您会发现在所有上下文中都不允许返回,而只返回最后一个计算值是。 因此,如果您不需要返回,我建议您永远不要使用它,因为正是因为这个原因:中断并从正在运行的迭代返回。 |
Kevin Furlong · 类型转换和泛型 6 年前 |
Oleg Volkov · T-SQL存储过程结果转换为变量 6 年前 |
Jmainol · 获取选项标记值y传递到数组中 7 年前 |
Shiranai · 使用指针在C中的一个函数中返回多个值 7 年前 |
Kayote · 函数是否总是返回值[重复] 7 年前 |
user3723688 · python导入csv函数 7 年前 |