为什么是Array.new(10){| e | e = e + 2}产生[0 2 4 6 8 10 12 14 16 18]?

道格拉斯

我不理解以下示例中该块产生的结果:

下面的数组初始化:

my_arr = Array.new(10) { |e| e = e * 2 }

产生以下结果:

[0 2 4 6 8 10 12 14 16 18]

虽然我期望:[0 0 0 0 0 0 0 0 0 0]在我看来,元素e并未初始化,因此充其量充其量只能是零(尽管我希望是'nil'),并且零乘以某个数字总是返回零。或者我希望它是几何级数,而不是算术级数。所以为什么 ???所以一定有我想念的东西。

和以下代码:

my_arr = Array.new(10) { |e| e = e + 2 }

产生以下结果:

[2, 3, 4, 5, 6, 7, 8 , 9, 10, 11]

虽然我期望:[0 2 4 6 8 10 12 14 16 18]在我看来,元素e并未初始化,因此充其量最好为零(尽管我期望为“零”)。因此,它应该是2而不是1的算术级数。为什么?

我检查了红宝石参考资料,找不到任何线索来理解这些如此不直观的结果。

这个想法来自这里http://www.tutorialspoint.com/ruby/ruby_arrays.htm

我认为关键在于解释e应该代表什么价值

约翰西

可以这样写:

Array.new(10) { |index| index * 2 } #=> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

与您链接到的文档中的最终形式匹配的形式:

new(size) {|index| block }

创建给定大小(10)的数组的位置。通过将元素的索引传递到给定的块并存储返回值来创建此数组中的每个元素。

e每个元素初始化之后在示例中分配给的值将被丢弃。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么:Math.floor(2e + 21)!= ~~(2e + 21)

来自分类Dev

1个线程需要2秒,10个线程需要16-18秒。为什么?

来自分类Dev

为什么.text()函数在ngScenario中返回AngularJS e2e的[object Object]?

来自分类Dev

为什么将%E2%80%8F添加到我的YouTube嵌入代码中?

来自分类Dev

为什么np.array([1e5])** 2与Python中的np.array([100000])** 2不同?

来自分类Dev

如何计算(a * b * c * d / e)%mfa,b,c,d,e的阶数为10 ^ 18?

来自分类Dev

AngularJS-e2e测试-为什么by.css选择器起作用?

来自分类Dev

在Python中将2e + 18转换为2x10 ^ 18

来自分类Dev

为什么R中的幂运算(例如10 ^ 6)要比计算器表示法(例如1e6)花费4倍的时间?

来自分类Dev

为什么地址大小不同?(0x206a10-0x104382e0)

来自分类Dev

产生错误:产生(e = 2):系统找不到指定的文件

来自分类Dev

.Net Core VS2015,无法加载DLL'git2-785d8c4':找不到指定的模块。(来自HRESULT的异常:0x8007007E)

来自分类Dev

如何使用熊猫从csv文件中的字符串读取2E2、2E4、3E2、3E4?

来自分类Dev

如何在MATLAB中创建模式为[1 2 5 6 9 10 13 14 17 18 ....]的向量?

来自分类Dev

如何重复序列:r中的1,2,3,4,5,6,1,2,3,4,5,6,7,8,9,10,7,8,9,10

来自分类Dev

教类型检查器2 ^ e≢0

来自分类Dev

为什么在单元测试期间我的URL中获得%E2%80%8B

来自分类Dev

为什么2a0 ++等于2a1,但2e0 ++等于3?

来自分类Dev

PCI-e电源-6 + 2等于8吗?

来自分类Dev

10行的-(B2 * SUM(C2:E2)> 0)的数组公式?

来自分类Dev

以2、8、10、16以外的底数提升mpz_int

来自分类Dev

为什么 math.simplify("1e-10").toString() 的 math.js 返回 0?

来自分类Dev

如果display(15)我想要结果1,2,3,4,5,6,8,9,10,12,15,16,18,20,24

来自分类Dev

Windows CE 6.0 : 串口 IRQ 6, 3E8 仅传输 16 字节

来自分类Dev

MFCreateAudioRenderer 需要 guid 1082E6C2-7660-4945-8E78-228A3B3329F6 的奇怪属性

来自分类Dev

Java 中用于匹配 C 10 10 或 L 1 2 6 2 或 R 14 1 8 3 的正则表达式

来自分类Dev

我希望输出像 [[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,10,12...18,20] ,[3,6,9...27,30].....[9,18,27..90]]

来自分类Dev

在什么编码中编码是西班牙语“ñ”eñe 0xa4,大写的eñe 0xa5?

来自分类Dev

我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

Related 相关文章

  1. 1

    为什么:Math.floor(2e + 21)!= ~~(2e + 21)

  2. 2

    1个线程需要2秒,10个线程需要16-18秒。为什么?

  3. 3

    为什么.text()函数在ngScenario中返回AngularJS e2e的[object Object]?

  4. 4

    为什么将%E2%80%8F添加到我的YouTube嵌入代码中?

  5. 5

    为什么np.array([1e5])** 2与Python中的np.array([100000])** 2不同?

  6. 6

    如何计算(a * b * c * d / e)%mfa,b,c,d,e的阶数为10 ^ 18?

  7. 7

    AngularJS-e2e测试-为什么by.css选择器起作用?

  8. 8

    在Python中将2e + 18转换为2x10 ^ 18

  9. 9

    为什么R中的幂运算(例如10 ^ 6)要比计算器表示法(例如1e6)花费4倍的时间?

  10. 10

    为什么地址大小不同?(0x206a10-0x104382e0)

  11. 11

    产生错误:产生(e = 2):系统找不到指定的文件

  12. 12

    .Net Core VS2015,无法加载DLL'git2-785d8c4':找不到指定的模块。(来自HRESULT的异常:0x8007007E)

  13. 13

    如何使用熊猫从csv文件中的字符串读取2E2、2E4、3E2、3E4?

  14. 14

    如何在MATLAB中创建模式为[1 2 5 6 9 10 13 14 17 18 ....]的向量?

  15. 15

    如何重复序列:r中的1,2,3,4,5,6,1,2,3,4,5,6,7,8,9,10,7,8,9,10

  16. 16

    教类型检查器2 ^ e≢0

  17. 17

    为什么在单元测试期间我的URL中获得%E2%80%8B

  18. 18

    为什么2a0 ++等于2a1,但2e0 ++等于3?

  19. 19

    PCI-e电源-6 + 2等于8吗?

  20. 20

    10行的-(B2 * SUM(C2:E2)> 0)的数组公式?

  21. 21

    以2、8、10、16以外的底数提升mpz_int

  22. 22

    为什么 math.simplify("1e-10").toString() 的 math.js 返回 0?

  23. 23

    如果display(15)我想要结果1,2,3,4,5,6,8,9,10,12,15,16,18,20,24

  24. 24

    Windows CE 6.0 : 串口 IRQ 6, 3E8 仅传输 16 字节

  25. 25

    MFCreateAudioRenderer 需要 guid 1082E6C2-7660-4945-8E78-228A3B3329F6 的奇怪属性

  26. 26

    Java 中用于匹配 C 10 10 或 L 1 2 6 2 或 R 14 1 8 3 的正则表达式

  27. 27

    我希望输出像 [[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,10,12...18,20] ,[3,6,9...27,30].....[9,18,27..90]]

  28. 28

    在什么编码中编码是西班牙语“ñ”eñe 0xa4,大写的eñe 0xa5?

  29. 29

    我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

热门标签

归档