无责任臆测:为了取 Fixnum 的 object id 效率更高。 效率最高的方法当然是 每个 Fixnum 的 id 就是它自己,但是那样 nil true false 就没地方放了。 无奈之下就只好退而求其次,用 2n+1 来对应。 那位说 2n+1 算起来慢的,实际上呢我们是用二进制位运算的,Fixnum 最后面塞个 1 就是 object id 了
例:25 == 11001 , 11001 最后塞个 1 就是 110011 == 51,正好吧
当然具体事实是不是这样我就不清楚了......
Update: 楼下已有原理说明,最后那个位是一直保留着的,所以是不用算可以直接对应上的。
楼主请把整个 project 推上 github,然后详细描述一下我们 clone 下来以后应该如何一步一步重现你的问题。
哼,标题党,害得人家还激动了一下
#10 楼 @macknight 放「成员方法」里面的代码是怎么样的?
#8 楼 @macknight 新开终端不就重新初始化了么,为啥要新开终端
贴代码,不贴代码的提问都是耍流氓
为啥下载文件要用 Rails?
#8 楼 @Vale 这是 Ruby 的语言特性,当参数列表最后是几个 key-value pair 的时候,Ruby 自动将其合成一个 Hash,作为一个参数传入。 另一种表述方法是,当 Hash 作为参数列表的最后一个参数传入时,可以省略大括号。
所以当你看到参数列表最后有好几个 key-value 对的时候,就要反应过来这只是一个参数
自己写的时候,一开始可以不省略,等熟了再省掉。比方为了清晰你也可以写成这样
link_to('Destroy',
article_path(article),
{
method: :delete,
data: {
confirm: 'Are you sure?'
}
})
不过我觉得这样就更乱了..... 要不你就每个参数写一行
link_to('Destroy',
article_path(article),
{ method: :delete, data: { confirm: 'Are you sure?' } })
楼主发 PR 撒
Now this will blow PO's mind:
puts 1.is_a? Integer
puts 2.5.is_a? Float
puts 2.5.is_a? Integer
puts 1.is_a? Float
我大水果的钱都要捂发霉了,总得想法子败掉一点吧
#7 楼 @davidminaki 把你的 project push 到 heroku 上跑跑,链接贴来看看
是不是这个啊?我不懂 mongoid
仔细想了一下,好像第二种写法更通用一些,一个 function
把 for
循环里面的全打包了。不知道我的想法是否正确。
#19 楼 @waitingaminute 51 开头的网站就别上了吧
慢慢学呗...
另外 Elixir 的作者 José Valim 写的一本 Crafting Rails 4 Applications 也可以看看
Rails Recipes 不过现在只有 Rails 3 的
楼主提到的书不错,4 刀非常超值
等 Rails 5 出来了,楼主又要等 6 ...
#1 楼 @mogodb 开什么玩笑,JavaScript 千秋万载一统江湖,Ruby 差远了。单凭浏览器垄断语言一点,别的语言拍马也别想赶上。
any application that can be written in JavaScript, will eventually be written in JavaScript.
感觉你这个 a 应该用 hash 而不是 array