乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      關于 Ruby - Ruby 官方網站

       ShangShujie 2010-12-15

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

      Ruby 發(fā)明者的理想

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

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

      除此之外,他還提到:

      Ruby 就像人的身體一樣,表面上看來簡單,但是內部卻相當的復雜[1]。

      Ruby 的成長

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

      Graph courtesy of Gmane.

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

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

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

      所見到的都是對象

      最初,Matz 從其它語言中找尋理想的語法,在網絡上他做了一段時間的調查,找到候選如“Perl“和“Python“。但都不是他想要的,他需要一個比 Perl 更強大、比 Python 更面向對象的語言[3]。

      在 Ruby 中,所有的東西都是對象,所有的信息和代碼都可以給它們所擁有的屬性和行為。面向對象程序設計中稱屬性為實例變量(instance variables),稱命令為方法 (methods)。 從下列程序代碼中看到 Ruby 能夠給數字賦于行為,從這點可以證明 Ruby 是純面向對象的語言。

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

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

      Ruby 的靈活性

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

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

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

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

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

      Blocks,一個獨特且強大的特性

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

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

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

      在上面的代碼中,代碼塊是在 do ... end 中的結構。 map 函數將代碼塊應用到一個詞的列表中。Ruby 的其他函數經常會為程序員留出一個空當給代碼塊來控制函數的功能。

      Ruby 與 Mixin

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

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

      class MyArray
        include Enumerable
      end

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

      Ruby 的面貌

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

      • var 可以是局部變量。
      • @var 是一個實例變量。
      • $var 是一個全局變量。

      這些信號讓程序員更清楚的看到每一個變量的角色,增強了程序的可讀性,也不需要在實例變量前面加上 self. 了。

      更上一層樓

      Ruby 還有其他豐富的特性:

      • Ruby 有類似于 Java 和 Python 的異常處理,使處理錯誤更方便。
      • Ruby 有一個真正的表示-清掃(mark-and-sweep)垃圾手機器來出來所有的 Ruby 對象。不需要在庫里維護引用數了。就像 Matz 說的:“這對您健康有意。”
      • 為 Ruby 寫 C 的擴展比 Perl 和 Python 更容易。Ruby 有一個非常雅致的 API 從 C 語言調用 Ruby。這包括把 Ruby 作為嵌入式腳本語言時,從其他軟件里調用 Ruby。SWIG 界面也是可選的。
      • Ruby 可以在操作系統(tǒng)允許的情況下動態(tài)調用庫。
      • Ruby 提供不依賴操作系統(tǒng)的線程。所以在所有 Ruby 支持的操作系統(tǒng)里都可以使用多線程處理,不管操作系統(tǒng)支不支持,比如 MS-DOS!
      • Ruby 極為輕便:它只要是在 GNU/Linux 上開發(fā)的,但也在很多類型的 UNIX 上運行,也支持 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.

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多