精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Ruby 2.0發布 新特性介紹

開發 開發工具
Ruby2.0目前已經發布了,各位Ruby的粉絲們是否已經體驗過了?本文將介紹最新的Ruby2.0的一些新特性,到底有哪些變化呢,請詳細閱讀下文。

本月24日(也就是明天)Ruby 2.0終于就要發布了。

Ruby核心團隊的卜部昌平桑昨天在一個內部學習會上的presentation,介紹了Ruby 2.0所包含的一些新特性。

(本文內容選譯自該幻燈片。)

為什么有Ruby 2.0?

  • 因為我們在改變事物。

  • 我們渴望讓自己變得越來越快樂、健康、以及高產。

  • 不必畏懼。“擁抱變化。”

Ruby 2.0有什么新鮮的?

什么不是Ruby 2中的新鮮貨

  • 幾乎所有的東西。

  • “100%后向兼容”,matz如是說。

    • 在現實中……
  • (舉個例子來說)Rails仍然能完好運行如初。

也就是說,

  • 新的東西被加進來了。

  • 許多內部的東西得到了改進。

Ruby 2.0的新句法

關鍵字參數(Keyword arguments)

下面的代碼在1.x中能夠正常工作:

 
  1. obj.method "with":lots => "of",  
  2.                    :args => "in",  
  3.                    :hash => "form" 

但是,問題出在哪呢?

問題是在定義該方法的時候: (Mort注:在Ruby 1.x中,只能將多個帶符號名稱的參數作為一個Hash來傳遞給方法。要為參數指定默認值,實現起來就很累贅,參見如下代碼)

 
  1. def obj.method(arg, hash)  
  2.   lots = Hash[:lots] || "default" 
  3.   args = Hash[:args] || "another" 
  4.   hand = Hash[:by hand] || "annoying" 
  5.   ...  
  6. end 

注意到代碼中錯誤的Hash[:by hand]——手寫代碼是錯誤產生的根源!

從2.0開始,Ruby將引入關鍵字參數:

 
  1. def obj.method(a, b = 1, c: 1, d: 2) 

其中a為固定參數,b為可選參數,c、d則為關鍵字參數。這樣,局部變量a、b、c和d都將被恰當地賦值。

在調用函數時,原有的調用方式無需更改。

Mort注:雖然幻燈片里沒有寫,傳統的基于Hash參數的調用方法是這個樣子的

 
  1. obj.method("foo":c => 2, :d => 3) 

現在Ruby 2.0同時也支持直接采用關鍵字參數的調用方法:(Python程序員一定會覺得這種語法更親切)

 
  1. obj.method("foo", c: 2, d: 3) 

更詳細的示例,可以參考這里:

http://brainspec.com/blog/2012/10/08/keyword-arguments-ruby-2-0/

其他細微的句法改進

  • 引入了符號數組字面值%i和%I。

 

  1. %i(foo bar baz) # => [:foo, :bar, :baz] 

 

  • Ruby現在默認把所有的輸入都視作UTF-8編碼。當然你也可以顯式地指定需要的編碼。

Ruby 2.0的核心性能改進

require的改進

  • 背景:今天,由于我們有了許多gems,啟動Ruby有時甚至需要一次require 128+個庫——這帶來了糟糕的性能問題。

  • 解決:require變得更快了(從計算復雜度的意義上來說)。

    • 若干技術被應用于減少多余的計算上。

Backtrace惰性生成

  • 起初,backtraces只是字符串數組而已。

  • 每當拋出異常時,這些字符串就被自上而下地生成出來,即使在它們沒有實際用途的情況下。

    • 這導致了超乎尋常的低效,尤其是當你有1024+個stack frames時(這在Rails應用中很常見)。
  • 從Ruby 2.x開始,Thread::Backtrace被用來取代字符串。

    • 它們非常地輕量級。
  • 當你需要查看backtrace時,只需將它們轉換成字符串即可(調用#to_s)。

Flonum類

  • 在64位平臺(如今早就爛大街了)上,指針,整型和浮點型數均是64位寬度的。

  • 在Ruby中,指針和整型均為C級別的register寄存器變量。而double卻是存儲在內存中的,如果我們能夠如操作指針一樣操作它們,將如何呢?

  • 問題:如何讓一個指針和一個double共存于一個union中?

  • 解決:一些技巧性的位移。

Mort注:圖片懶得搬運了……請參見原幻燈片。

GC(Garbage Collection)

  • Bitmap標志:以前,GC標志位存儲于每個對象中,但現在已經被轉移到了專用的內存頁中,以減少緩存的誤查詢(同時也更加CoW (Copy-on-Write)友好)。

  • 非遞歸標志:標志函數如今避免了機器棧溢出的風險。

  • 惰性清理(從1.9.3起):清理器只有在必須的地方才進行收集(減少了stop時間)。

Ruby 2.0的新核心特性:#1 調試工具

DTrace支持

TracePoint支持

GC stats

Ruby 2.0的新核心特性:#2 核心庫

細粒度的異步中斷處理

Ruby的執行有時會因為各種原因而中斷,例如,超時。

Ruby 2.0提供了細粒度的異步中斷處理方案:

 

  1. Thread.async_interrupt_timing Timeout::Error => :defer do 
  2.   timeout(rand()) do 
  3.     begin 
  4.       Thread.async_interrupt_timing Timeout::Error => :immediate do 
  5.         setup  
  6.         handle  
  7.         ...  
  8.       end 
  9.     ensure 
  10.       teardown  
  11.     end 
  12.   end 
  13. end 

 

模塊前插

有時候你想要給一個方法添加需要的安裝或拆解代碼,而相應的部分卻定義在別處。

 

  1. module ActiveRecordHelper  
  2.   def save  
  3.     ???  
  4.   end 
  5. end 

 

該如何去做呢?在Ruby 2.0中,你可以:

 

  1. class Foo < AR::Base  
  2.   prepend AR::Helper  
  3.  
  4.   def save  
  5.     bar  
  6.   end 
  7. end 
  8.  
  9. module AR::Helper  
  10.   def save  
  11.     foo  
  12.     super 
  13.     baz  
  14.   end 
  15. end 
  16.  
  17. Foo.new.save  

 

這避開了Rails中的所謂“別名方法鏈(alias method chain)”的困擾。AMC什么的已經不再必要了。

惰性枚舉器

Ruby的foo.bar.baz. ...風格(所謂的“流水作業”)有時會傳遞許多并不必要的臨時對象,而這些理論上都可以通過惰性求值來避免。

 

  1. File.open(path) {|fp|  
  2.     fp.each_line. \  
  3.     select {|line| # 生成了臨時數組  
  4.     /regexp/ =~ line  
  5.     }. \  
  6.     each_with_index.map {|line, no| # 生成了臨時數組  
  7.     sprintf("%d: %s\n", no, line)  
  8.     }. \  
  9.     first(10).each {|str| # 生成了臨時數組  
  10.         puts(str)  
  11.     }  

 

 

  1. File.open(path) {|fp|  
  2.     fp.each_line.lazy \  
  3.     select {|line| # 沒有臨時數組產生  
  4.     /regexp/ =~ line  
  5.     }. \  
  6.     each_with_index.map {|line, no| # 沒有臨時數組產生  
  7.     sprintf("%d: %s\n", no, line)  
  8.     }. \  
  9.     first(10).each {|str| # 沒有臨時數組產生  
  10.         puts(str)  
  11.     }  
  12. # 甚至在到達EOF之前都不讀取數據 

 

一個有趣的應用實例:無窮枚舉器。

 

  1. # Leibniz formula for π  
  2. (0..Float::INFINITY).lazy.map {|i|  
  3.     ((-1) ** i) / (2*i + 1).to_f  
  4. }.take(65536).reduce(:+) * 4 

 

其他的新方法

  • Kernel.__dir__:獲取__FILE__所在的目錄名。
  • Kernel#to_h:通用的Hash轉換方法。
  • Random類(1.9+):可重復的PRNG。
  • IO#wait_writable:等待直到可寫。
  • Refinements: 實驗性的。

Mort注:更多關于Ruby 2.0核心特性的介紹,參考

Ruby 2.0標準庫的改進

  • CGI
    • CGI已經為HTML5做好了一切準備。
  • net/http
    • 支持SNI(Server Name Indication)。
  • Zlib綁定
    • Zlib如今運行在解釋器的進程鎖之外。這意味著zlib在多線程的情形下運行速度將更快。
  • 更新的stdlibs(標準庫)
    • Rubygems 2.0.0
    • JSON 1.7.7
    • Rake 0.9.5
    • Rdoc 4.0
    • 以及其它(REXML,yaml,openssl……)

總結

什么不是Ruby 2中的新鮮貨

  • 幾乎所有的東西!

  • “100%后向兼容”,matz如是說。

  • (舉個例子來說)Rails仍然能完好運行如初。

  • 不必畏懼!開始使用2.0.0版吧!

也就是說,

  • 新的東西被加進來了。

  • 許多內部的東西得到了改進。

  • 即使你對你當前的環境充分自信,2.0.0仍然值得你擁有。

Don’t be afraid. Use Ruby today!

視頻:AKB48 - Ruby

原文鏈接:http://www.soimort.org/posts/140/

責任編輯:林師授 來源: Mort Yao的博客
相關推薦

2019-03-05 10:27:53

Linux 系統 數據

2009-06-16 11:25:57

phpMyAdmin

2025-08-20 12:13:06

2012-08-13 10:40:37

Ubuntu Twea操作系統

2013-02-25 14:02:07

RubyWeb

2013-05-28 09:49:04

Hadoop 2.0大數據數據存儲

2011-10-14 06:58:30

Ubuntu 11.1特性

2009-03-30 09:16:16

JBossSOAEclipse

2011-10-28 10:21:57

Ruby

2009-04-01 08:53:34

JavaRebelJVM插件

2012-03-14 12:29:55

JavaPlay Framwo

2012-02-16 09:15:48

JavaJActor

2011-07-13 15:09:48

PHP

2014-09-12 10:46:35

Java9

2011-07-07 10:33:27

Ruby

2011-10-10 09:56:43

Ruby

2009-07-21 12:49:10

Ruby on RaiRoR

2011-10-18 15:00:46

Perl

2009-11-30 10:44:37

Debris LinuLinux

2012-05-11 10:42:56

JavaErrai
點贊
收藏

51CTO技術棧公眾號

久久99精品久久久久久噜噜 | 欧美疯狂party性派对| 色屁屁一区二区| 2019国产精品| 欧美成人免费全部观看天天性色| 成人免费黄色av| av福利在线导航| 91美女视频网站| 国产女同一区二区| 国产在线视频二区| 精品久久综合| 精品少妇一区二区三区在线播放| 人妻有码中文字幕| 免费黄色网页在线观看| 成人黄色网址在线观看| 国产精品扒开腿做爽爽爽视频| 中日韩一级黄色片| 日韩电影在线观看完整免费观看| 欧美日韩一区二区三区视频| 青青青青在线视频| 日韩av中文| 久久久国产精品麻豆| 电影午夜精品一区二区三区| 中文字幕人妻丝袜乱一区三区| 红桃视频国产精品| 色一情一乱一区二区| 极品白嫩的小少妇| 精品视频在线一区| 欧美亚洲免费在线一区| 久久黄色片视频| 1区2区在线观看| 中文字幕欧美国产| 欧美h视频在线| 亚洲精品18在线观看| 精品一区二区三区视频在线观看| 日本老师69xxx| 日本特黄一级片| 亚洲欧美综合| 久久久成人的性感天堂| 国产探花视频在线播放| 欧美日韩另类图片| 精品国产制服丝袜高跟| 亚洲一区二区在线视频观看| 美女100%一区| 亚洲一线二线三线视频| 美国av一区二区三区| 国产av一区二区三区| 日本va欧美va精品| 欧美激情国产精品| 国产这里有精品| 成人免费看片39| 亚洲精品一区二三区不卡| 美女又黄又免费的视频| 婷婷丁香久久| 欧美系列一区二区| 国产精品69页| 久久影院午夜精品| 亚洲成人午夜电影| 国产乱淫av片杨贵妃| 成人黄色在线电影| 国产日产欧美一区二区三区| 欧美日韩综合网| 神马久久久久| 91老司机福利 在线| 狠狠色噜噜狠狠色综合久| www.成人免费视频| 韩国精品久久久| 国产精品亚洲网站| 又污又黄的网站| 日本亚洲一区二区| 国产成人福利视频| 麻豆成人免费视频| 久久久亚洲人| 欧洲亚洲在线视频| 国产婷婷色一区二区在线观看| 亚洲午夜伦理| 96精品视频在线| 国产在线观看黄色| 水野朝阳av一区二区三区| 国内精品小视频| 国产一区二区三区影院| 99精品热视频只有精品10| 国内成人精品视频| 天天操天天射天天爽| 亚洲高清资源| 2020久久国产精品| 加勒比在线一区| 蜜桃视频第一区免费观看| proumb性欧美在线观看| 隔壁老王国产在线精品| 国产亚洲成人av| 狠狠色综合网| 欧洲成人免费aa| 无码免费一区二区三区| 美国三级日本三级久久99| 成人激情视频在线观看| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 成人av片在线观看| 久久精品一二三区| 国产在线观看网站| 国产精品乱码人人做人人爱| www.-级毛片线天内射视视| 神马午夜伦理不卡| 午夜精品久久久久久| 久久久在线免费观看| 欧美三级日本三级| 亚洲视频福利| 热久久这里只有精品| 中文字幕一区二区免费| 国产乱人伦偷精品视频不卡| 国产经典一区二区三区| 国产视频精选在线| 中文字幕一区二区三区在线播放 | 久久综合成人| 九色成人免费视频| 亚洲黄色激情视频| 国产自产高清不卡| 久久精品日韩精品| 黄色免费在线观看| 欧美日韩免费看| 亚洲免费成人在线视频| 激情亚洲另类图片区小说区| 在线亚洲国产精品网| 久久久精品一区二区涩爱| 视频在线观看国产精品| 99久久精品免费看国产一区二区三区| 无码国产精品一区二区色情男同 | 中文字幕av播放| 国产精品亚洲产品| 日韩女优在线播放| 国产黄频在线观看| 国产日产精品一区| www.国产在线播放| 粉嫩av一区二区三区四区五区 | 久久精品视频91| 亚洲视频国产| 深夜成人在线观看| 亚洲日本视频在线观看| 国产一区999| 视频在线精品一区| 日韩电影毛片| 精品久久久久久久久久久久包黑料 | 亚洲精品久久久| 亲子乱一区二区三区电影| 99热这里只有精| 国产目拍亚洲精品99久久精品| 久久久久久久久久网| 国产日韩在线观看视频| 一本色道久久88亚洲综合88| 中日韩黄色大片| 成人午夜视频网站| 久久久一二三四| 在线播放成人| 久久精品国产综合| 中文字幕在线播出| 中文字幕av资源一区| 国产二区视频在线播放| 18国产精品| 欧美日韩国产成人| 成 人 免费 黄 色| 亚洲免费毛片网站| 亚洲av无日韩毛片久久| 久久精品播放| 国产日韩欧美在线| 欧美激情黑人| 欧美丰满美乳xxx高潮www| 欧美成人另类视频| 秋霞影院一区二区| 日本免费一区二区三区| 成人在线黄色| 中日韩美女免费视频网站在线观看| 国产精品国产一区二区| 国产又粗又猛又黄又爽| 国产精品久久久久桃色tv| 成年人在线观看视频免费| 久久99久久人婷婷精品综合| 欧美性受xxxx白人性爽| 无码国产伦一区二区三区视频| 午夜电影网亚洲视频| 亚洲天堂av网站| 在线免费高清一区二区三区| 国产欧美日韩综合一区在线观看| 俺来也官网欧美久久精品| 精品成人a区在线观看| 在线观看亚洲天堂| 久久亚洲春色中文字幕久久久| 欧美激情精品久久久久久小说| 国产一区二区在线| 国产在线一区二区三区| dj大片免费在线观看| 欧美大胆人体bbbb| 国产黄色片免费看| 中文字幕的久久| 天天色天天干天天色| 亚洲成人直播| 先锋影音网一区| 国产在线不卡一区二区三区| 久久免费视频网| 国产中文字幕在线播放| 欧美日韩国产高清一区二区三区| 国产探花在线播放| 97久久超碰精品国产| 手机看片福利日韩| 亚洲精品午夜av福利久久蜜桃| 国产成人精品一区二区三区福利| 三级在线观看视频| 色婷婷久久一区二区| 亚洲精品无amm毛片| 色婷婷久久综合| 日韩a级片在线观看| caoporn国产一区二区| 国产老熟妇精品观看| 精品国产一区二区三区| 亚洲影院污污.| 成人美女大片| 欧美成人久久久| 色天堂在线视频| 欧美麻豆精品久久久久久| 日韩av黄色片| 国产精品九色蝌蚪自拍| 久久久老熟女一区二区三区91| 日本中文在线一区| 成人免费观看在线| 成人久久综合| 国产日韩三区| 国产精品麻豆| 欧美专区在线播放| 在线视频中文字幕第一页| 亚洲欧洲第一视频| www国产一区| 欧美日韩亚洲不卡| 国产高清中文字幕| 亚洲夂夂婷婷色拍ww47| 91免费在线看片| 久久这里只有精品6| 99精品视频国产| 美国毛片一区二区| 国产精品第12页| 尹人成人综合网| 一区高清视频| 亚洲小说图片视频| 粉嫩高清一区二区三区精品视频| 亚洲成人精品综合在线| 国产精品xxxxx| 亚洲优女在线| 国语自产精品视频在线看抢先版图片| 又爽又大又黄a级毛片在线视频| 亚洲国产一区二区三区四区| 亚洲爱爱综合网| 制服丝袜亚洲精品中文字幕| 亚洲精品毛片一区二区三区| 福利视频第一区| 国产成人精品片| 亚洲成人综合在线| 久久在线视频精品| 亚洲激情男女视频| 九九热精品免费视频| 国产色产综合产在线视频| 变态另类丨国产精品| 成人99免费视频| 扒开伸进免费视频| 国产精品香蕉一区二区三区| 91porn在线| 国产高清成人在线| 久久久久亚洲av无码麻豆| 极品少妇xxxx精品少妇| 天天摸天天舔天天操| 国内精品久久久久影院薰衣草| 天天干天天操天天做| 蜜臀久久99精品久久久画质超高清| 亚洲色图38p| 免费高清在线一区| 中文字幕在线综合| 久久丁香综合五月国产三级网站| 奇米影视四色在线| 狠狠色伊人亚洲综合成人| 国产精品嫩草影院8vv8| 久久爱www久久做| 亚洲色图欧美自拍| 黄页网站大全一区二区| 韩国中文字幕av| 久久精品国产99国产| 九九热视频免费| 国产黑丝在线一区二区三区| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 欧美 日韩 国产 一区二区三区| 亚洲欧洲无码一区二区三区| 极品色av影院| 亚洲最大成人综合| 亚洲黄色一区二区| 91福利在线播放| 亚洲熟妇无码久久精品| 666欧美在线视频| a天堂在线观看视频| 日韩激情视频在线| 91高清在线视频| 色综合久综合久久综合久鬼88| аⅴ资源天堂资源库在线| 日本伊人精品一区二区三区介绍| 国产一区一一区高清不卡| 成人日韩av在线| 日本成人手机在线| 国产精品日韩高清| 国产精品一区2区3区| 免费成人深夜夜行网站视频| 亚洲日本黄色| 天天干天天综合| 成人av电影在线| 国产视频精品免费| 偷拍亚洲欧洲综合| 中文字幕91爱爱| 亚洲精品一区二区三区精华液 | 品久久久久久久久久96高清| 99久久精品费精品国产| 男女激情免费视频| 久久国产免费看| aaaaaav| 亚洲人成影院在线观看| 中文字幕超碰在线| 91精品国产一区二区三区| 天天av综合网| 色综合天天狠天天透天天伊人| 国产极品在线观看| 成人性生交大片免费看小说 | 欧美日韩精品欧美日韩精品| 国产富婆一级全黄大片| 亚洲欧美中文字幕在线一区| 在线观看免费视频你懂的| 国产精品h在线观看| 欧美精品日韩精品| av电影在线不卡| 成人免费一级视频| 亚洲欧美一区二区三区久久| 日本暖暖在线视频| 国产做受高潮69| 国产不卡精品在线| 免费在线成人av| 国产综合久久| 亚洲人视频在线| 国产亚洲成年网址在线观看| 欧美一级高潮片| 欧美在线不卡视频| 色天堂在线视频| 午夜精品久久久久久久99热浪潮 | 日本www在线播放| 国产黄色精品网站| 三级黄色在线观看| 日本二三区不卡| 免费福利在线观看| 91黑丝高跟在线| 第四色在线一区二区| 国产av第一区| 极品少妇一区二区| 91制片厂在线| 欧美日韩欧美一区二区| 天天舔天天干天天操| 九九热99久久久国产盗摄| 亚洲国产一区二区久久| 五码日韩精品一区二区三区视频| 久久先锋资源| 乐播av一区二区三区| 色一区在线观看| 国产一二在线观看| 91精品国产高清久久久久久久久 | 91精品国产日韩91久久久久久| 在线观看完整版免费| 国产精品日韩欧美大师| 综合色就爱涩涩涩综合婷婷| 免费在线观看毛片网站| 久久综合久久99| 欧美亚洲另类小说| 亚洲午夜色婷婷在线| 福利一区在线| 中文字幕欧美日韩一区二区三区 | 欧美中日韩免费视频| 精久久久久久| 五月开心播播网| 日韩欧美极品在线观看| 女人偷人在线视频| 国产国语videosex另类| 精品久久网站| 黄色aaaaaa| 亚洲最大色网站| 亚洲色大成网站www| 国产97色在线| 久久高清精品| 99久久综合网| 精品久久久久久久中文字幕| 性欧美8khd高清极品| 奇门遁甲1982国语版免费观看高清| 国产成人3p视频免费观看| 自拍偷拍一区二区三区四区| 亚洲美腿欧美偷拍| 天天摸天天干天天操| 国产成人免费91av在线| 久久人人99| 亚洲啪av永久无码精品放毛片| 色哟哟国产精品免费观看| 免费黄色在线网站| 国产精品一区免费观看|