0 ruby loops list-comprehension
如何在 Ruby 中编写这样的循环?
hashTable = [node(None, -1, None, None, -1) for i in range(0, tableLength)]
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下操作:
hash_table = [table_length.times do |x|
x = NODE.new(@key, @val, @next, @prev, @pos)
x
end]
Run Code Online (Sandbox Code Playgroud)
@key, @val...
我在调用该类时传递值的位置,如下所示:
this = NODE.new(nil, -1, nil, nil, -1)
this.read_file("alice.txt")
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
你离我们并不遥远。当然,有几种方法可以做到这一点。
\n\nna\xc3\xafve 方式:
\n\nhash_table = []\n\ntable_length.times do\n hash_table << Node.new(nil, -1, nil, nil, -1)\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n功能方式:
\n\nhash_table = table_length.times.map do\n Node.new(nil, -1, nil, nil, -1)\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n惯用的方式:
\n\nhash_table = Array.new(table_length) { Node.new(nil, -1, nil, nil, -1) }\n
Run Code Online (Sandbox Code Playgroud)\n\n最后一个选择是最好的。Array构造函数以 Fixnumn
和块作为参数,将计算块n
时间并将结果作为数组返回。我喜欢的一个演示是rand
:
Array.new(5) { rand(0..10) }\n# => [3, 10, 0, 8, 7]\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
1365 次 |
最近记录: |