首页 | 主题 | 图库 | 问答 | 文摘 | 原创 | 百科

历史 | 地理 | 人物 | 艺术 | 体育 | 科学 | 音乐 | 电影 | 信息技术 | 世界遗产

 开放、中立,源自维基百科

个人工具


Ruby

维库,知识与思想的自由文库

跳转到: 导航, 搜索
Ruby
编程范型: multi-paradigm
面市時間: 1995年
設計者: 松本行弘
實作者: 松本行弘(和其他許多人)
最近釋出日期: 1.8.6 / 2007年3月12日
型態系統: dynamic ("duck")
主要實作產品: Ruby, JRuby
啟發語言: Smalltalk, Perl, Lisp, Python, CLU, Dylan
影響語言: Groovy
作業系統: 跨平台
許可證: Ruby License / GPL
Website: www.ruby-lang.org


Ruby,一种為簡單快捷物件導向編程面向对象程序设计)而創的脚本語言,由日本松本行弘まつもとゆきひろ,英译:Yukihiro Matsumoto,外號matz)开发,遵守GPL协议和Ruby License。Ruby的作者認為Ruby > (Smalltalk + Perl) / 2,表示Ruby是一個语法像Smalltalk一样完全面向对象、脚本執行、又有Perl強大的文字處理功能的程式語言。其他特色包括:

目录

[编辑] 歷史

Ruby的作者於1993年2月24日開始編寫Ruby,直至1995年12月才正式公開發佈於fj(新聞群組)。之所以稱為Ruby,是因為Perl的發音與6月的誕生石pearl(珍珠)相同,因此Ruby以7月的誕生石ruby(紅寶石)命名。

Ruby明顯比其他類似的程式語言(如PerlPython)年輕,又因為Ruby是日本人發明的,所以早期的非日文資料和程式都比較貧乏,所以現在在網上仍然可以找到Ruby的資料太少之類的批評。約於2000年,Ruby開始進入美國,英文的資料開始發展。

Ruby現在的穩定版本是1.8.6(2007年3月12日發佈)。

[编辑] Ruby 的理念

减少编程时候的不必要的琐碎时间,令编写程序的人高兴,是设计 Ruby 语言的 Matz 的一个首要的考虑;其次是良好的界面设计。他强调系统设计必须强调人性化,而不是一味从机器的角度设想。

人们特别是电脑工程师们,常常从机器着想。他们认为:“这样做,机器就能运行的更快;这样做,机器运行效率更高;这样做,机器就会怎样怎样怎样。”实际上,我们需要从人的角度考虑问题,人们怎样编写程序或者怎样使用机器上应用程序。我们是主人,他们是仆人。


遵循上述的理念,Ruby 语言通常非常直观,按照编程人认为它应该的方式运行。

[编辑] 語意

Ruby 是完全面向对象的:任何一点数据都是对象,包括在其他语言中的基本类型(比如:整数,布尔逻辑值),每个过程或函数都是方法。

[编辑] Ruby的Hello World程序

下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:

<source lang="Ruby">

  1. !/usr/bin/env ruby

puts "Hello, world!" </source>

或者是在 irb 互動式命令列的模式下:

<source lang="Ruby"> >>puts "Hello, world!" Hello, world! => nil </source>

[编辑] Ruby 的特点

[编辑] 完全面向对象

在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数。

[编辑] 变量没有类型

Ruby的变量可以保有任何类型的数据。

[编辑] 任何东西都有值

不管是数学或者逻辑表达式还是一个语句,都有值。

[编辑] 變數命名規則

Ruby的變數有以下幾種:

  • 一般小寫字母、底線開頭:變數,變量 (Variable)。
  • $開頭:全域變數,全局變量 (Global variable)。
  • @開頭:實體變數,實例變量 (Instance variable)。
  • @@開頭:類別變數,類變量 (Class variable)。
  • 大寫字母開頭:常數 (Constant)。

[编辑] 已经定义的类可以在运行时修改

Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单例方法。 <source lang="Ruby"> class MyClass

 def the_method
   "general method"
 end

end

mc = MyClass.new def mc.the_method

 "special for this instance."

end

mc.the_method </source>

[编辑] JRuby

JRuby,類似PythonJython,一個可於Java上執行Ruby的語言,支援Java的介面和類別。最新發布版爲1.0(2007-6-14),與Ruby 1.8.5兼容。它的官方網站為jruby.codehaus.org

[编辑] 和 Perl 6 比較

  • CPAN 上排名第一名,同時也是 Perl 6 的開發者的 Autrijus 說:「Ruby 就是『沒有到處打廣告的 Perl 6』」。[1]
  • 松本行弘在接受 O'Reilly 的訪問時,提到「Ruby 借用了很多 Perl 的東西……,Python 遠比 Perl 要少……」、「我認為 Ruby 這個名字作為 Perl 之後的一門語言的名字真是再恰當不過了。」[2]
  • 拉里·沃爾Larry Wall,Perl 之父)說:「我還喜歡 Ruby 的 C<*> 一元星號操作符,所以我把它加到 Perl 6 裡面。」[3]

[编辑] 參見

[编辑] 参考文献

[编辑] 外部鏈結

[编辑] 中文資源

其它语言
AD Links