Ruby Ruby 2.1 is coming!

tumayun · 2013年10月11日 · 最后由 zw963 回复于 2013年10月12日 · 2977 次阅读

Ruby 2.1 is coming!

https://www.ruby-lang.org/en/news/2013/09/23/ruby-2-1-0-preview1-is-released/

Changes

The notable changes are:

  • VM (method cache)
  • RGenGC(See ko1’s RubyKaigi presentation and Euruko presentation)
  • refinements
  • syntax
  • Decimal Literal
  • Frozen String Literal
  • def’s return value
  • Bignum
  • 128bit
  • GMP
  • String#scrub
  • Socket.getifaddrs
  • new RubyGems

更多的详细更新内容: https://github.com/ruby/ruby/blob/trunk/NEWS

顶你一下!

补充一下 Changes

local_variable_getlocal_variable_set, 这下终于神器了...

#4 楼 @zgm

例如这种:

render "template", locals: {a: 3}

rails 里,局部变量其实通过 binding.eval "a=assigns[:a]" 设进去的,会慢一点而且由于运行时还需要 eval, 没法在整个应用加载完以后提升 $SAFE 等级。改成 binding.local_variable_set :a, 3 就完美了。

再例如这种写法:

get "/posts/:post_id" do
  post_id # sinatra 里其实也是 eval 设进来的
end

也可以改成更快更少副作用的 local_variable_set

#5 楼 @luikore 原来如此。我一直认为 local_variable_get 和 local_variable_set 一直就有的,也没用过。刚看了一下,果然没有。

#3 楼 @luikore 👍 这个绝对需要啊..这下什么黑魔法都能用上了

preview1 是现在最好还不要用,等 final release 的意思吗? 要不要直接升?虽然我还不懂什么魔法……可是升法很爽的耶!

#3 楼 @luikore

我靠~ 当初学习 instance_variable_set, class_variable_set 的时候,就很努力的想过,为什么没有这个 ...... 觉得实现起来,应该没啥瓶颈呀..... 最终还是出现了...

我很奇怪,为什么不早出现??

需要 登录 后方可回复, 如果你还没有账号请 注册新账号