`

什么是Ruby?

阅读更多
Ruby是一种解释型的方便快捷的面向对象脚本语言,它是日本的Yukihiro Matsumoto(人们都叫他Matz.)于1993年2月24日首次发布的。它从Perl, Eiffel那里吸收了很多特性, 使之很适合用来文本文件处理和进行系统管理任务,并且完全面向对象。它的语法简单明快,可扩展并且可以跨平台。Ruby是完全自由开放的,意思是我们不仅可以免费得到,而且可以自由地使用、复制、修改和分发它。以下是Ruby之父Matz.给出的Ruby特性:

Ruby的语法简单,部分语法是从Eiffel和Ada那里得到灵感的。

Ruby拥有异常处理机制,就像Java或Python一样,使之处理异常和错误更简单。

Ruby的操作符其实是方法,你可以很容易地重新定义它们。

Ruby是一种完整的纯面向对象语言(OOL)。这就是说所有的数据在Ruby里面都是对象,不是像Python或Perl那样,而是像Smalltalk那样的纯面向对象(没有什么例外)。比如:在Ruby里面,数字1是类Fixnum的一个实例。

Ruby精心地设计了它的面向对象特性,使之完整并且开放允许改进。比如:Ruby有在运行时可以向类里,甚至能够向实例里添加方法的能力。所以,如果有需要,某个类的一个实例可以表现得和同一个类的其他实例不一样。

Ruby“ 故意地”使用单继承机制,但是它有模块(Modules)的概念(在Object-C里面叫Categories)。模块是方法的集合,它是一个比多重继承更清晰的解决方案。多重继承很复杂,比起单继承来它用得不是很经常。(不要在这里提起C++,C++因为强类型机制使得它没有其他选择。)

Ruby有真正的闭包机制,不仅仅是匿名函数,而且还实现了变量绑定。

Ruby在它的特性中加入了程序块(blocks)的概念(包含在"{......}"或者"do.....end"之间的代码),这些程序块可以传递给方法,或者转换成闭包。

Ruby拥有一个真正的“标记-清除”(mark and sweep)式的垃圾收集器,它对所
有Ruby对象起作用。你不需要为维护扩展库中的引用记数担心舛阅愕慕】蹈?
有好处。:-)

在Ruby中写C语言扩展比Perl或者Python中更容易,这部分是因为垃圾收集器的原因,部分是因为它好用的扩展API接口。Ruby中也有SWIG接口。

我们使用Ruby中的整数时可以不用考虑它的内部实现,Ruby中有小整数(Fixnum类的实例)和大整数(Bignum),但是我们不用担心现在正在使用的是那一个。如果一个数字足够小,它就是Fixnum,否则它就是Bignum了。这个转化是自动完成的。

Ruby不需要变量声明。它用一个简单的命名规则来表示各个变量的作用范围。例子:简单的 'var' = 局部变量,'@var' = 实例变量,'$var' = 全局变量。所有我们也没有必要用一个'self.'来表示实例成员了。

如果操作系统允许,Ruby可以动态的加载扩展库。

Ruby拥有独立于操作系统的线程机制。所以,在任何能运行Ruby的平台上你都可以拥有多线程,不管那个平台是否支持多线程,甚至在MS-DOS上面也行:-)

Ruby是高度可移植的,它大部分是在Linux上开发的,但是可以在很多类型的Unix, Dos, Windows95/98/Me/NT/2000/XP, MacOS, BeOS, OS/2等系统上运行。

ails是ruby的一个web框架,关系你可以理解为java与struts.
分享到:
评论

相关推荐

    Ruby常见面试题.pdf

    什么是Ruby?简要介绍Ruby的特点和主要用途。 **Ruby**是一种面向对象的、动态类型的解释性脚本语言。它由日本程序员松本行弘(Matz)于1995年设计并发布。Ruby的设计理念在于简洁性和生产力,它旨在提供一种简单...

    Ruby语言教程大纲.zip

    压缩包中的图像文件可能包含了教学过程中的示例图解,例如"Ruby??????\????-chen.png"和"Ruby??????\????-hua.png"可能是关于某个主题的解释图。"Ruby??????\"可能是一个未命名的目录,包含更多相关的学习材料。最后...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    python-ruby:我应该学习Python还是Ruby?

    我应该学习Python还是Ruby? 乍一看,Python和Ruby似乎是非常相似的语言。 两者都是用于快速开发的高级语言。 两种语言都是优美的语言,如果编写得当,它们会很直观,并且读起来很像英语。 动态是什么意思? 好吧...

    程序员为什么还要刷题-ruby-intro:[Ruby]

    什么是Ruby? Ruby 是一种服务器端编程语言,这意味着它驻留在网页服务器中并由其处理。 什么是服务器? 它从数据库中收集信息,使用逻辑对其进行过滤,然后从中生成一些信息发送回用户。 这可能是 HTML,或者,在 ...

    Ruby-rubybuild编译和安装Ruby

    Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

    Ruby是一种强大的、面向对象的脚本语言,广泛用于Web开发、服务器端编程和各种应用程序。在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求...

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    ruby-git, ruby/Git是一个 ruby 库,可以通过将系统调用包装到Git二进制文件来创建读取和操作Git存储库.zip

    ruby-git, ruby/Git是一个 ruby 库,可以通过将系统调用包装到Git二进制文件来创建读取和操作Git存储库 用于 ruby的 Git库在 ruby 中使用Git的库。主页项目源代码的Git public 位于:...

    Ruby Programming

    #### 四、为什么选择Ruby? - **思维模式转变**:学习Ruby能够帮助开发者以全新的视角看待编程问题,激发创新思维。 - **高效开发**:Ruby的简洁性和动态特性使得开发者能够更快速地构建应用程序。 - **活跃社区**...

    Ruby完全自学手册

    Ruby是一种简洁而功能强大的编程语言,由日本的松本行弘(Yukihiro "Matz" Matsumoto)在1993年开发,并于1995年公开发布。Ruby语言设计之初就非常注重开发人员的编程体验,它拥有自然、表达性强的语法,易于阅读和...

    Ruby完全自学手册 下

    《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...

    Ruby-ngxruby是嵌入ruby脚本的Nginx模块

    Ruby-ngxruby模块是Nginx服务器中的一个扩展,它允许开发者使用Ruby语言编写服务器端逻辑,从而增强Nginx的功能。Nginx以其高性能、轻量级的特性被广泛用于处理静态内容和反向代理任务,而通过ngx_ruby模块,Nginx...

    ruby安装包下载 | ruby环境搭建

    Ruby是一种强大的动态编程语言,广泛应用于Web开发,脚本编写,服务器管理等领域。为了在没有外网连接的环境中搭建Ruby环境,你需要提前下载并准备相关的安装包。在提供的压缩包中,包含了三个关键文件:`ruby-2.7.2...

    使用ruby解析awdb离线库

    使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库...

    ruby中$~,$?是线程安全的么?

    NULL 博文链接:https://l-d.iteye.com/blog/1488038

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

    src-oepkgs/ruby-ruby2ruby

    src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...

    Ruby-TensorStream用Ruby重新实现TensorFlow

    **Ruby-TensorStream:用Ruby重现实现TensorFlow** Ruby-TensorStream是一个开源项目,旨在为Ruby开发者提供一个类似于Google TensorFlow的深度学习框架。它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能...

Global site tag (gtag.js) - Google Analytics