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

Ruby 2.0 有哪些新特性?

開發 前端
本月24日Ruby 2.0終于發布了。為什么有Ruby 2.0?因為我們在改變事物;我們渴望讓自己變得越來越快樂、健康、以及高產;不必畏懼。“擁抱變化”。

本月24日Ruby 2.0終于發布了。

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

(本文內容選譯自該幻燈片:https://speakerdeck.com/shyouhei/whats-new-in-ruby-2-dot-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. <code>%i(foo bar baz) # =&gt; [:foo, :bar, :baz] </code> 

·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. module AR::Helper  
  9.   def save  
  10.     foo  
  11.     super 
  12.     baz  
  13.   end 
  14. end  
  15. 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核心特性的介紹,參考

http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features

http://www.infoq.com/news/2012/11/ruby-20-preview1

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!

視頻:http://jpopsuki.tv/video/AKB48—Ruby/eb57d9ad12c4f7a324fc6854f673d40d (AKB48 演唱)

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

責任編輯:張偉 來源: Soi Mort 的博客
相關推薦

2013-02-26 09:36:57

RubyRuby 2.0

2021-03-30 14:50:41

前端TypeScript 命令

2021-06-23 09:46:16

Python 3.10結構模式管理器

2017-09-16 15:55:54

ChromeJavaScriptAndroid

2022-06-24 08:33:13

ECMAScriptjavaScript

2023-06-28 00:40:01

ECMAScriptWeakMapSymbol

2012-03-14 12:29:55

JavaPlay Framwo

2009-06-15 16:15:37

Spring2.0新特

2009-06-18 15:40:07

Spring Batc

2009-12-18 13:43:07

Ruby 1.9版本

2009-07-30 14:55:43

ASP.NET 2.0

2021-11-17 10:45:58

Chrome 95新特性前端

2020-07-14 08:45:13

Flink特性jira

2018-05-30 15:10:24

Spring BootList類型

2011-09-30 14:15:10

Sencha ToucSencha Touc

2012-07-02 10:43:49

JVMGroovyJava

2009-11-04 14:17:34

ADO.NET 2.0

2010-08-06 15:14:03

DB2 V9.5 新特

2012-03-24 21:02:41

iOS

2015-06-23 15:48:41

Swift 2.0iOS9
點贊
收藏

51CTO技術棧公眾號

国产黄色片免费观看| 亚洲av无码成人精品国产| 韩国中文字幕在线| 国产精品一区免费视频| 性金发美女69hd大尺寸| mm131美女视频| 精品视频成人| 欧美体内谢she精2性欧美| 亚洲欧美国产不卡| 精品人妻少妇嫩草av无码专区| 亚洲人妖在线| 久久精品国产91精品亚洲| 亚洲香蕉中文网| 本网站久久精品| 婷婷综合久久一区二区三区| 亚洲最新在线| 男女视频在线观看免费| 国产电影一区在线| 国产精品久久久久久久久借妻| 九九在线观看视频| 成人vr资源| 精品1区2区在线观看| 日本肉体xxxx裸体xxx免费| 55av亚洲| 一区二区三区丝袜| 一区二区三区四区久久| 欧美日韩伦理片| 国产·精品毛片| 91啪国产在线| 最好看的日本字幕mv视频大全| 黄色成人在线网站| 久久亚洲精品一区| 阿v天堂2014| 色先锋久久影院av| 亚洲成人网久久久| 日本黄色www| 99精品女人在线观看免费视频| 欧美在线综合视频| av动漫在线观看| 青春草视频在线| 亚洲免费av网站| 伊人av成人| av在线播放网站| 久久综合九色综合97_久久久| 国产精品手机视频| 亚洲av无码乱码国产麻豆| 免费看精品久久片| 国产精品69久久| 99超碰在线观看| 国产精品日韩欧美一区| 国内精品在线一区| 国产亚洲精品久久久久久无几年桃 | 激情 小说 亚洲 图片: 伦| 欧美a级在线观看| 精品高清美女精品国产区| 久久这里只有精品8| 手机电影在线观看| 一区二区三区免费观看| 日韩专区第三页| 国产天堂在线播放视频| 亚洲国产精品久久艾草纯爱| 国产www免费| 99re6在线精品视频免费播放| 亚洲图片欧美色图| 国产综合av在线| 欧美日韩大片| 欧美性生交片4| a在线观看免费视频| 国产精品天堂蜜av在线播放| 欧美日韩一区二区三区四区| 极品粉嫩美女露脸啪啪| 亚洲国产综合在线观看| 欧美一级欧美三级| 亚洲香蕉中文网| 深爱激情综合网| 色哟哟入口国产精品| 视频国产一区二区| 欧美精品三级| 青青草99啪国产免费| 中国a一片一级一片| 极品尤物av久久免费看| 99久久久久国产精品免费| 免费国产精品视频| 国产日韩欧美精品一区| gogogo免费高清日本写真| 亚洲卡一卡二| 欧美日韩另类视频| 中文字幕天天干| 18国产精品| 亚洲视频综合网| 欧美精品久久久久久久久46p| 欧美体内she精视频在线观看| 69av在线视频| 91精东传媒理伦片在线观看| 成人小视频在线观看| 欧美精品一区二区三区在线看午夜 | 日韩在线免费观看视频| 伊人365影院| 免费成人你懂的| 福利视频一区二区三区| 国产免费av高清在线| 亚洲欧美日韩国产手机在线 | 亚洲第一视频网| 国产99在线 | 亚洲| 国产精品v日韩精品v欧美精品网站 | 亚洲老头同性xxxxx| 国产wwwwxxxx| 亚洲自拍另类| 亚洲综合视频1区| 欧美精品少妇| 亚洲国产精品影院| 午夜国产福利在线观看| 最新国产精品视频| 久久久久久国产三级电影| 中文字幕第一页在线播放| 成人avav在线| 看全色黄大色大片| 亚洲不卡系列| 日韩精品黄色网| 精品自拍偷拍视频| 日本不卡的三区四区五区| 国产在线一区二区三区播放| 国内精品久久久久久野外| 欧洲色大大久久| 欧美多人猛交狂配| 99精品久久| 成人91视频| 黄色网在线播放| 欧美色综合网站| 国产又粗又猛又爽视频| 一区二区三区导航| 国产精品一 二 三| 欧美日韩经典丝袜| 91精品欧美久久久久久动漫| 中文天堂资源在线| 热久久一区二区| 欧洲久久久久久| 在线免费日韩片| 精品亚洲精品福利线在观看| 日韩免费av片| 不卡影院免费观看| 国产va亚洲va在线va| 电影一区二区在线观看| 欧美激情亚洲综合一区| 国产草草影院ccyycom| 国产精品国产三级国产有无不卡| 国产一级特黄a大片免费| 欧美成a人免费观看久久| 韩剧1988免费观看全集| 日韩一级中文字幕| 亚洲成人综合在线| 精品一区二区视频在线观看| 黄色免费成人| 精品1区2区| 嗯~啊~轻一点视频日本在线观看| 欧美xxxx在线观看| 国产黄色片视频| 99精品在线观看视频| www.中文字幕在线| 九一成人免费视频| 国产精品电影久久久久电影网| 国产毛片在线看| 欧美日韩一区小说| 伊人久久久久久久久久久久久久| 国产一区二区三区在线观看精品| 精品一区二区成人免费视频 | 精品国产乱码久久久久久郑州公司| 日本三级在线观看网站| 亚洲电影成人av99爱色| 韩国av中文字幕| 国产欧美一区二区精品仙草咪| 天天色综合天天色| 欧美激情偷拍| 久久久久久a亚洲欧洲aⅴ| 欧美www.| 久久亚洲电影天堂| 天堂在线观看av| 欧美亚洲一区三区| 朝桐光av在线| 不卡一区二区三区四区| 99精品视频在线看| 欧美成人激情| 国产精品免费一区二区三区观看| 日本免费一区二区三区四区| 日韩在线观看免费全| 亚洲第一天堂在线观看| 色偷偷久久一区二区三区| 国产亚洲精品久久久久久豆腐| 国产成人一区二区精品非洲| 黄色免费视频大全| 欧美xxxxx视频| 国产美女精品久久久| 国产成人精品亚洲日本在线观看| 久久这里有精品视频| 香蕉视频网站在线| 制服丝袜亚洲色图| 国产精品xxxx喷水欧美| 亚洲视频1区2区| 深爱五月激情网| 国产乱国产乱300精品| www黄色av| 欧美三区视频| 亚洲国产精品视频一区| 国内毛片久久| 91欧美激情另类亚洲| 亚洲精品一区| 欧美国产日韩一区| eeuss影院www在线观看| 亚洲国产精品va在线| 中文字幕一区二区人妻| 欧美午夜电影在线| 免费一级片视频| 中文成人综合网| 亚洲狠狠婷婷综合久久久久图片| 精品亚洲国内自在自线福利| 无罩大乳的熟妇正在播放| 亚洲激情五月| 三区精品视频观看| 天海翼精品一区二区三区| 亚洲在线免费看| 99久久亚洲国产日韩美女 | 久久黄色精品视频| 亚洲一区二区中文在线| 粉嫩av性色av蜜臀av网站| 日本一区二区三区在线不卡| 激情综合丁香五月| 国产69精品久久777的优势| 午夜一区二区视频| 蓝色福利精品导航| 88av.com| 天堂蜜桃91精品| 国产在线精品91| 亚洲国产1区| 成人毛片100部免费看| 久久久久蜜桃| www.午夜色| 99精品全国免费观看视频软件| 日韩欧美视频一区二区三区四区| 欧美偷窥清纯综合图区| 九九九热999| 日韩一级电影| 美女三级99| 自拍偷拍一区| 奇米视频888战线精品播放| 国产精品嫩模av在线| 欧美重口乱码一区二区| 精品一区三区| 日产精品一线二线三线芒果| 视频一区中文| 日韩电影在线播放| 欧美美女视频| 亚洲欧洲国产精品久久| 香蕉综合视频| wwwwww欧美| 在线播放日韩| 男人天堂1024| 日韩国产精品久久久| 超碰在线公开97| 久久99精品久久久久久动态图| 福利视频999| 国产精品白丝av| 熟妇高潮一区二区| 久久久一区二区三区| 黄免费在线观看| 国产精品久久久久久久久久久免费看| 很污很黄的网站| 亚洲欧美日本在线| 日韩欧美三级在线观看| 色婷婷精品久久二区二区蜜臀av | 久久久久久夜| 天天视频天天爽| 国产一区二区三区黄视频 | 欧美视频在线不卡| 一区不卡在线观看| 日韩欧美资源站| 午夜18视频在线观看| 国产亚洲精品久久久| 黄视频在线观看网站| 久久免费视频观看| 成人软件在线观看| 亚洲在线www| 要久久电视剧全集免费| 亚洲人成网站在线观看播放 | 欧美激情免费看| 波多视频一区| 91中文精品字幕在线视频| 久久1电影院| 亚洲国产午夜伦理片大全在线观看网站 | 久久天天躁日日躁| 国产高清自产拍av在线| 国产精品旅馆在线| 91亚洲无吗| 欧美伦理一区二区| 欧美精品一卡| 日日摸天天爽天天爽视频| 国产一区二区视频在线| 草草影院第一页| 亚洲免费三区一区二区| 在线精品免费视| 欧美一区二区三区在线视频| 日韩精品123| 欧美成人合集magnet| 亚洲欧美电影| yy111111少妇影院日韩夜片| 欧洲杯半决赛直播| 国产美女主播在线播放| 久久66热re国产| 亚洲黄色在线网站| 亚洲另类在线一区| 国产无遮挡又黄又爽又色视频| 日韩欧美高清一区| 在线播放麻豆| 欧美尤物巨大精品爽| 亚洲网一区二区三区| 性欧美大战久久久久久久免费观看| 1000部精品久久久久久久久| 中文字幕一区久久| 欧美激情一区二区三区不卡 | 亚洲一区二区三区高清不卡| www.午夜av| 国产精品久久久久久久久动漫 | 久久国产免费| 折磨小男生性器羞耻的故事| 自拍偷自拍亚洲精品播放| 欧美日韩 一区二区三区| 日韩av在线免费播放| 伊人影院在线视频| 成人欧美一区二区三区在线湿哒哒| 久久成人av| av免费中文字幕| 99视频超级精品| 精品肉丝脚一区二区三区| 91麻豆精品国产91久久久久久久久 | 视频直播国产精品| 亚洲欧美在线成人| 日本一区高清不卡| 日韩精品福利网| a级片在线观看| 欧美性猛交xxxx免费看久久久| 人妻偷人精品一区二区三区| 九九九久久久久久| 日韩一级淫片| 少妇久久久久久被弄到高潮| 国产资源在线一区| 波多野结衣在线网址| 欧美丰满一区二区免费视频| 男人和女人做事情在线视频网站免费观看 | 亚洲一区二区精品在线观看| 蜜臀久久99精品久久久画质超高清 | 欧美在线导航| 日本成年人网址| 欧美激情在线一区二区三区| 免费视频网站在线观看入口| 国产午夜精品免费一区二区三区| 激情开心成人网| 亚洲激情图片| 精品无人码麻豆乱码1区2区 | 国产美女福利在线| 91免费视频国产| 亚洲婷婷在线| 老司机午夜免费福利| 欧美色图在线视频| 成人好色电影| 91免费欧美精品| 亚洲电影在线| 欧美特级黄色录像| 欧美日本一区二区| 成人高清免费在线| 国产视频一区二区三区四区| 欧美一级一区| 成年人视频软件| 精品国产一区久久| 免费观看亚洲| 一本久道久久综合狠狠爱亚洲精品| 国产精品自在欧美一区| 日韩欧美a级片| 在线观看成人黄色| 中文字幕视频精品一区二区三区| 黄色一级在线视频| 国产精品乱码妇女bbbb| 精品国产av一区二区| 欧美亚洲国产另类| 久久久久久美女精品| 无码av免费精品一区二区三区| 色综合婷婷久久| 羞羞的视频在线观看| 久久国产精品高清| 久热成人在线视频| 日韩成年人视频| 最近2019年日本中文免费字幕| 99re8这里有精品热视频免费| 国产亚洲天堂网| 亚洲免费av高清| 成人网视频在线观看| 成人av免费看| 欧美aaaaaa午夜精品| 97成人资源站| 在线激情影院一区| 福利欧美精品在线| 亚洲欧美日韩综合网|