免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
關(guān)于 Ruby - Ruby 官方網(wǎng)站

想知道 Ruby 為什么會(huì)如此受歡迎嗎?為什么使用過它的支持者都稱贊它為巧妙、優(yōu)雅且易用更實(shí)用有趣的語言?

Ruby 發(fā)明者的理想

Ruby 是一個(gè)注重均衡的語言,它的發(fā)明者松本行弘 Yukihiro “matz” Matsumoto,混合了他喜歡的語言(Perl、 Smalltalk、 Eiffel、 Ada 和 Lisp ) 產(chǎn)生了一種具有函數(shù)式及指令程序設(shè)計(jì)特性的新語言。

他常說,他是“試著讓 Ruby 更自然,而不是簡(jiǎn)單,就像生活一樣”。

除此之外,他還提到:

Ruby 就像人的身體一樣,表面上看來簡(jiǎn)單,但是內(nèi)部卻相當(dāng)?shù)膹?fù)雜[1]。

Ruby 的成長(zhǎng)

在 1993 年,沒有人會(huì)相信一個(gè)由日本業(yè)余語言設(shè)計(jì)者創(chuàng)建的面向?qū)ο蟮恼Z言,能最終在世界范圍內(nèi)被廣泛使用并且變得幾乎像 Perl那樣流行。自從 1995 年 Ruby 公開發(fā)表以來,Ruby 在全球吸引了許多忠實(shí)的程序設(shè)計(jì)員。在 2006 年,Ruby被廣泛接受。在各大城市都有活躍的使用者并通過社區(qū)舉辦許許多多場(chǎng)場(chǎng)爆滿的研討會(huì)。

在 Ruby-Talk,主要的 郵件列表 上,討論 Ruby 語言的文章爬升到每日 200 封。

TIOBE, 最流行的開發(fā)語言排名調(diào)查中, Ruby 排名為全球第 11 位。 根據(jù)這樣的成長(zhǎng)情況,他們預(yù)測(cè)“在半年之中 Ruby 將會(huì)進(jìn)入最受歡迎開發(fā)語言的前 10 名。”有越來越多受歡迎的軟件如 Ruby on Rails web framework2 是使用 Ruby 撰寫而成,也是造成 Ruby 如此快速成長(zhǎng)的原因。

Ruby 是開源軟件。 不只是免費(fèi),而且可以自由的使用、復(fù)制、修改與發(fā)布。

所見到的都是對(duì)象

最初,Matz 從其它語言中找尋理想的語法,在網(wǎng)絡(luò)上他做了一段時(shí)間的調(diào)查,找到候選如“Perl“和“Python“。但都不是他想要的,他需要一個(gè)比 Perl 更強(qiáng)大、比 Python 更面向?qū)ο蟮恼Z言[3]。

在 Ruby 中,所有的東西都是對(duì)象,所有的信息和代碼都可以給它們所擁有的屬性和行為。面向?qū)ο蟪绦蛟O(shè)計(jì)中稱屬性為實(shí)例變量(instance variables),稱命令為方法 (methods)。 從下列程序代碼中看到 Ruby 能夠給數(shù)字賦于行為,從這點(diǎn)可以證明 Ruby 是純面向?qū)ο蟮恼Z言。

5.times { print "We *love* Ruby -- it's outrageous!" }

在許多語言中,數(shù)字和其它原生的類型都不是對(duì)象。而 Ruby 受 Smalltalk 語言影響,讓所有的類型都可以賦予方法及產(chǎn)生實(shí)例變量,并讓這些規(guī)則適用于 Ruby 所有對(duì)象。

Ruby 的靈活性

Ruby 是一個(gè)相當(dāng)靈活的語言,她允許用戶去改變她本身。 Ruby 的核心部分可以被更改或重新定義,模塊可以被添加。Ruby 試著不去妨礙程序員。

比如(+) 是用做加法的運(yùn)算符。如果你更喜歡使用易讀的 plus 的話,你可以給 Ruby 的內(nèi)建 Numeric 類添加一個(gè)函數(shù)。

class Numeric
  def plus(x)
    self.+(x)
  end
end

y = 5.plus 6
# y is now equal to 11

Ruby 的符號(hào)只是語法的甜頭 (syntactic sugar)。你可以隨時(shí)重定義他們。

Blocks,一個(gè)獨(dú)特且強(qiáng)大的特性

Ruby 的代碼塊是非常強(qiáng)大的。程序員可以給任何函數(shù)添加一個(gè)密封 (closure) 來表述這個(gè)函數(shù)該如何工作。密封也被叫做代碼塊,是用過其他比如 PHP, Visual Basic 等規(guī)則語言的 Ruby 的初學(xué)者最喜歡使用的一個(gè)功能。

代碼塊取自函數(shù)語言。Matz 說:“我希望在 Ruby 的密封中融入 Lisp 的文化 [4]。”

search_engines = 
  %w[Google Yahoo MSN].map do |engine|
    "http://www." + engine.downcase + ".com"
  end

在上面的代碼中,代碼塊是在 do ... end 中的結(jié)構(gòu)。 map 函數(shù)將代碼塊應(yīng)用到一個(gè)詞的列表中。Ruby 的其他函數(shù)經(jīng)常會(huì)為程序員留出一個(gè)空當(dāng)給代碼塊來控制函數(shù)的功能。

Ruby 與 Mixin

于其他面向?qū)ο笳Z言不同,Ruby “有意”只提供單繼承。不過 Ruby 擁有模塊(在 Objective-C 里面叫做類別)。模塊是把許多方法放在了一個(gè)類別里。

類可以混合一個(gè)模塊,得到這個(gè)模塊提供的所有方法。比如所有提供 each 方法的類可以混合 Enumerable 模塊,來得到這個(gè)模塊提供的所有方法,當(dāng)然這些方法都會(huì)調(diào)用 each 做循環(huán)。

class MyArray
  include Enumerable
end

一般來說,Ruby 愛好者相對(duì)于復(fù)雜和限制頗多的多態(tài)繼承方法來講更偏向于這種混合方法。

Ruby 的面貌

盡管 Ruby 只用很少的符號(hào)并且偏向與英文單詞做關(guān)鍵字,但是少量的符號(hào)也被用來裝飾 Ruby。Ruby 不需要提前定義變量。它用簡(jiǎn)單的命名法來提示變量存在的范圍。

  • var 可以是局部變量。
  • @var 是一個(gè)實(shí)例變量。
  • $var 是一個(gè)全局變量。

這些信號(hào)讓程序員更清楚的看到每一個(gè)變量的角色,增強(qiáng)了程序的可讀性,也不需要在實(shí)例變量前面加上 self. 了。

更上一層樓

Ruby 還有其他豐富的特性:

  • Ruby 有類似于 Java 和 Python 的異常處理,使處理錯(cuò)誤更方便。
  • Ruby 有一個(gè)真正的表示-清掃(mark-and-sweep)垃圾手機(jī)器來出來所有的 Ruby 對(duì)象。不需要在庫(kù)里維護(hù)引用數(shù)了。就像 Matz 說的:“這對(duì)您健康有意。”
  • 為 Ruby 寫 C 的擴(kuò)展比 Perl 和 Python 更容易。Ruby 有一個(gè)非常雅致的 API 從 C 語言調(diào)用 Ruby。這包括把 Ruby 作為嵌入式腳本語言時(shí),從其他軟件里調(diào)用 Ruby。SWIG 界面也是可選的。
  • Ruby 可以在操作系統(tǒng)允許的情況下動(dòng)態(tài)調(diào)用庫(kù)。
  • Ruby 提供不依賴操作系統(tǒng)的線程。所以在所有 Ruby 支持的操作系統(tǒng)里都可以使用多線程處理,不管操作系統(tǒng)支不支持,比如 MS-DOS!
  • Ruby 極為輕便:它只要是在 GNU/Linux 上開發(fā)的,但也在很多類型的 UNIX 上運(yùn)行,也支持 Mac OS X, Windows 95/98/Me/NT/2000/XP,DOS,BeOS,OS/2 等。

參考資料

1 Matz, 在 Ruby-Talk 郵件列表, 5月12日, 2000.

2 查看更多信息在 Ruby on Rails 主頁.

3 Matz, 在 Ruby 創(chuàng)造者的采訪, 11月29日, 2001.

4 Matz, 在 Ruby 的代碼塊和閉合, 12月22日, 2003.

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
我為什么要從 Python 轉(zhuǎn)向 Crystal 語言
Erlang不能錯(cuò)過的盛宴(轉(zhuǎn)csdn)
Perl 5.6 的新特性在哪些方面優(yōu)于 C/C++/Java ?
過去十年,編程語言領(lǐng)域有什么重要進(jìn)展?
動(dòng)態(tài)語言和靜態(tài)語言的比較
編程教學(xué):最適合初學(xué)者的語言是什么?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服