精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩午夜av| 欧洲一区在线| 国产精品乱子久久久久| 91欧美精品午夜性色福利在线| 成人免费毛片东京热| 欧美激情久久久久久久久久久| 91高清视频在线| 粉嫩av一区二区三区天美传媒| 亚洲 欧美 激情 另类| 麻豆精品久久久| 久久久欧美精品| 国产视频三区四区| 国产香蕉精品| 这里是久久伊人| 国产男女激情视频| 黄色美女视频在线观看| 日本一区二区三区视频视频| 国产精品sss| 一区二区视频网| 一区二区三区福利| 欧美乱大交xxxxx另类电影| xxxx日本黄色| 日本在线中文字幕一区| 91精品免费在线| 亚洲最大综合网| 日韩在线伦理| 亚洲国产欧美一区二区三区丁香婷| 日韩久久不卡| 涩涩视频在线观看免费| 国产精品亚洲一区二区三区妖精| 国产精品第一第二| 亚洲天堂一区在线观看| 亚洲毛片视频| 欧美精品激情在线| 一区二区视频免费看| 成人嘿咻视频免费看| 精品五月天久久| 久久人妻少妇嫩草av无码专区| 网站一区二区| 欧美一区二区黄色| 激情文学亚洲色图| www.久久99| 51精品秘密在线观看| 91n.com在线观看| 日韩大尺度黄色| 欧美日韩在线影院| 中文字幕无码精品亚洲35| 国产乱码在线| 亚洲一区二区三区激情| 国产高清不卡无码视频| gogo在线观看| 一区二区在线观看不卡| 99久re热视频精品98| 日本高清在线观看wwwww色| 欧美高清在线一区二区| 色99中文字幕| 日本视频在线播放| 国产精品进线69影院| 亚洲精品一区二区三区蜜桃久| 成人不用播放器| 国产精品久久久久四虎| 伊人久久青草| 在线看三级电影| 一区二区三区 在线观看视频| 男女裸体影院高潮| 1区2区3区在线| 精品欧美aⅴ在线网站| 亚洲熟女乱色一区二区三区| 亚洲承认视频| 欧美日韩三级一区二区| 一级片免费在线观看视频| 狂野欧美xxxx韩国少妇| 亚洲国产精品字幕| 美女被到爽高潮视频| 残酷重口调教一区二区| 久久综合久久八八| 久久精品久久精品久久| 香蕉久久夜色精品国产| 国产精品免费在线免费| 国产精品女同一区二区| 成人免费av资源| 日本一区不卡| 中文字幕伦理免费在线视频| 亚洲成av人影院在线观看网| 黑人糟蹋人妻hd中文字幕 | 欧美精品手机在线| 久久精品一二区| 蜜臀精品一区二区三区在线观看| 97人人澡人人爽| 你懂的免费在线观看视频网站| 国产精品女同互慰在线看| 黄色片免费在线观看视频| 亚洲第一av| 欧美一级一区二区| 无码一区二区三区在线| 在线成人激情| 国产91久久婷婷一区二区| 国产伦精品一区二区三区四区| 成人禁用看黄a在线| 图片区小说区区亚洲五月| 日本精品600av| 在线视频国产一区| 麻豆精品国产传媒av| 日本一二区不卡| 韩国三级日本三级少妇99| 中文字幕在线播放不卡| 成年人网站91| 在线观看欧美亚洲| 日韩电影免费观| 亚洲国产高潮在线观看| 久艹在线观看视频| 日韩国产欧美一区二区三区| 成人h视频在线观看| 91av资源在线| 欧美日在线观看| 国产av一区二区三区传媒| 日韩精品91| 青青a在线精品免费观看| 成人av一区二区三区在线观看| 国产日韩精品一区二区三区在线| 欧美中日韩在线| 九九99久久精品在免费线bt| 在线精品91av| 日本免费在线观看视频| 成人av免费在线观看| 国产经典久久久| 青娱乐极品盛宴一区二区| 亚洲一区av在线播放| 亚洲精品77777| 高清在线成人网| 在线观看污视频| 日韩五码电影| 色一区av在线| 日韩乱码一区二区三区| 久久综合久色欧美综合狠狠| 日本大片免费看| 亚洲不卡在线| 久久成人精品视频| 国产精品女同一区二区| 亚洲欧美日韩中文播放| 欧美精品一区二区三区免费播放| 亚洲激情播播| 青青草原成人在线视频| 天堂在线中文字幕| 福利视频导航一区| 97人妻天天摸天天爽天天| 日韩视频二区| 美脚丝袜一区二区三区在线观看| 欧美男男tv网站在线播放| 亚洲电影天堂av| 日本在线视频免费| 99re视频这里只有精品| 免费无码毛片一区二三区| 精品国内亚洲2022精品成人| 555www成人网| 九色在线观看| 精品1区2区3区| 久久久久久久麻豆| 丰满白嫩尤物一区二区| 亚洲人成无码网站久久99热国产| 美女一区2区| 欧美洲成人男女午夜视频| 国产在线网站| 51久久夜色精品国产麻豆| 免费人成视频在线| 99热在这里有精品免费| 亚洲熟妇av一区二区三区 | av久久久久久| 粉嫩久久久久久久极品| 热草久综合在线| 91在线品视觉盛宴免费| 欧美一卡二卡三卡| 91精品国产乱码在线观看| 欧美激情一区二区在线| 亚洲天堂av一区二区三区| 欧美三级免费| 欧美亚洲丝袜| 日韩国产大片| 韩国国内大量揄拍精品视频| 国产系列在线观看| 欧美高清性hdvideosex| 国产稀缺真实呦乱在线| 国产亚洲女人久久久久毛片| av中文字幕网址| 亚洲国内欧美| 亚洲v国产v在线观看| 亚洲一区二区三区在线免费 | 国产内射老熟女aaaa| 成人自拍在线| 国产精品麻豆va在线播放| 五月天激情在线| 亚洲视频777| 超碰在线播放97| 欧美四级电影网| 国产网址在线观看| 国产精品久久三区| 在线天堂www在线国语对白| 久久国产精品99精品国产| 日韩a级在线观看| 国产精品久久久久久久久久10秀 | 无码人妻一区二区三区在线视频| 一区二区国产在线观看| 亚洲美女自拍偷拍| 欧美人与拘性视交免费看| 91在线视频成人| 欧美色999| 性亚洲最疯狂xxxx高清| www.在线视频| 一区二区日韩精品| 午夜视频在线播放| 日韩一区二区三区视频在线| 久久久久久av无码免费看大片| 性欧美大战久久久久久久久| 日韩高清dvd碟片| 欧美国产日韩一二三区| 亚洲一区二区三区综合| 高清日韩电视剧大全免费| www.超碰97.com| 日韩影院精彩在线| 缅甸午夜性猛交xxxx| 欧美 日韩 国产一区二区在线视频| 日韩精品无码一区二区三区| 秋霞蜜臀av久久电影网免费| 99久久99| 日本精品在线观看| 成人免费看片视频| 久久亚洲国产精品尤物| 国产精品99免视看9| 色吧亚洲日本| 69国产精品成人在线播放| 爱情岛亚洲播放路线| 欧美日韩成人精品| 91在线中字| 欧美成人精品xxx| 快射视频在线观看| 久久亚洲精品一区| fc2ppv国产精品久久| 久久精品最新地址| 免费av在线网站| www国产精品视频| 国产激情在线| 久久精品91久久香蕉加勒比| 免费黄色网址在线观看| 久久久999国产| 国产黄色小视频在线| 久久视频在线视频| www.在线视频| 久久免费福利视频| 日韩欧美国产网站| 国产精品一区二区电影| 亚洲黄色免费看| 欧美最顶级丰满的aⅴ艳星| 亚洲黄色中文字幕| 国产精品白嫩美女在线观看| 色婷婷综合久久久中字幕精品久久 | 男男一级淫片免费播放| 丁香婷婷综合激情五月色| 日本一区二区在线观看视频| k8久久久一区二区三区 | 免费看a级黄色片| 日韩中文字幕一区二区三区| 999精彩视频| 国产毛片精品国产一区二区三区| 久久久久亚洲AV成人网人人小说| 成人听书哪个软件好| 玖草视频在线观看| 国产日产欧美一区二区三区 | 亚洲一区二区三区| 国产性生活免费视频| 亚洲人人精品| 久久午夜夜伦鲁鲁一区二区| 久久精品国产久精国产爱| 夜夜爽久久精品91| 不卡av电影在线播放| 亚洲 小说 欧美 激情 另类| 国产精品初高中害羞小美女文| 我要看黄色一级片| 亚洲国产精品一区二区久久恐怖片| 国产一区二区99| 欧美日韩在线播| 亚洲av无码国产精品永久一区| 亚洲国产成人精品电影| 爱久久·www| 欧美人与物videos| 日韩三级影视| 999国内精品视频在线| 色88888久久久久久影院| 中文字幕一区二区三区四区五区| 亚洲午夜一级| 亚洲无吗一区二区三区| 国产高清不卡二三区| 高清国产在线观看| 亚洲国产一区二区a毛片| 亚洲精品无码久久久久| 欧美xxx久久| 97视频在线观看网站| 久久久亚洲国产天美传媒修理工| av亚洲一区二区三区| aa成人免费视频| 郴州新闻综合频道在线直播| 国产午夜福利100集发布| 久88久久88久久久| 国产传媒第一页| 亚洲精品国久久99热| 成年人视频免费| 亚洲第一网站免费视频| 日本高清视频在线播放| 日韩av手机在线观看| 爱爱精品视频| 亚洲精品偷拍视频| 日韩电影网1区2区| 亚洲综合自拍网| 亚洲午夜在线电影| 亚洲资源在线播放| 亚洲欧洲国产伦综合| av中文字幕电影在线看| 成人中文字幕+乱码+中文字幕| 久久99国内| av免费观看网| 不卡av在线网| 国产第100页| 日韩亚洲国产中文字幕欧美| 一区二区三区视频网站| 日韩免费在线看| 夜夜躁狠狠躁日日躁2021日韩| wwwwww欧美| 国产乱码精品一区二区三区五月婷| 国产极品视频在线观看| 色综合天天做天天爱| 污污视频在线免费看| 97人人模人人爽人人喊中文字 | 久久久久99精品成人片试看| 欧美精品 国产精品| 求av网址在线观看| 成人福利在线观看| 99久久久国产精品美女| 国产又粗又长又大的视频| 久久久.com| 波多野结衣在线电影| 亚洲人成网站免费播放| 欧美理论影院| 日韩理论片在线观看| 日韩高清一区在线| 国产视频不卡在线| 欧美三级电影网站| 免费黄色电影在线观看| 亚洲精品欧美日韩| 欧美在线视屏| 日批免费观看视频| 亚洲成人手机在线| 少妇人妻精品一区二区三区| 国产做受高潮69| 亚洲+小说+欧美+激情+另类| 那种视频在线观看| 国产午夜精品久久久久久久| 国产精品第六页| 精品国产一区二区三区在线观看| 男人亚洲天堂| 四虎4hu永久免费入口| 国产91高潮流白浆在线麻豆| 日韩福利片在线观看| 亚洲欧美国产精品专区久久 | 在线欧美日韩精品| 亚洲免费视频一区二区三区| 成人激情黄色网| 国内久久视频| 成人免费网站黄| 欧美婷婷六月丁香综合色| 黄色网页网址在线免费| 国产精品久久精品国产| 国产欧美激情| 天堂资源在线视频| 欧美大片在线观看一区二区| 少妇视频一区| 亚洲人成77777| 粉嫩绯色av一区二区在线观看| av中文在线播放| 色yeye香蕉凹凸一区二区av| 日日夜夜精品视频| 欧美牲交a欧美牲交aⅴ免费真 | 国产精品99精品无码视| 亚洲人成电影在线播放| 成人国产精品久久| 免费国产a级片| 亚洲欧洲日韩女同| 手机在线精品视频| 国产美女直播视频一区| 激情自拍一区| 日本综合在线观看| 亚洲精品在线三区| 欧美videos粗暴| 日本福利视频一区| 国产精品激情偷乱一区二区∴| 亚洲h视频在线观看| 国产精品久久久久999| 黄色亚洲大片免费在线观看| 中文字幕被公侵犯的漂亮人妻| 欧美成人免费网站| 亚洲精品毛片| 国产v亚洲v天堂无码久久久|