了解过,然后放弃了。 因为:那些什么什么鬼的 0day,端口,postgresql,都不清楚的情况下,只知道 ruby 并没什么用。
官方的flatten!
,妥妥滴。
为什么要用递归呢,ruby 的递归耗 cpu 的,能不用就不用。就性能来说,递归更适合用那些静态语言
➜ ~ pry
[1] pry(main)> a = [1, [2], [1, [2, [3]]], 'l', 'dota']
=> [1, [2], [1, [2, [3]]], "l", "dota"]
[2] pry(main)> i = 1
=> 1
[3] pry(main)> while a.flatten!(1)
[3] pry(main)* i += 1
[3] pry(main)* end
=> nil
[4] pry(main)> puts i
4
=> nil
[5] pry(main)> a
=> [1, 2, 1, 2, 3, "l", "dota"]
[6] pry(main)> b = %w( i love lol, dota go die)
=> ["i", "love", "lol,", "dota", "go", "die"]
[7] pry(main)> j = 1
=> 1
[8] pry(main)> while b.flatten!(1)
[8] pry(main)* j += 1
[8] pry(main)* end
=> nil
[9] pry(main)> puts j
1
=> nil
[10] pry(main)>
#4 楼 @qinfanpeng 简单说是蛋和鸡的问题。
我在另外一个 class 里面用一个常量调用了这个 scope。A_CONSTANT_VAR = SomeModel.lol_scop
。然后 Rails 初始化的时候,会预加载所有的常量。然后,SomeModel
这个 model 的 migration 只在自己的数据库有,小伙伴的数据库里面是没有这个表的。
所有就造成了,只有当时写这个 model 的人才能正常使用。
其他人,即使代码是一模一样的,也是没有办法启动 rails 的。
:plus1: