介绍一下Ruby的特点


Posted in 面试题 onJanuary 20, 2013
Ruby是一种功能强大的面向对象的脚本语言,可以使用它方便快捷地进行面向对象程序设计。与Perl类似,而且Ruby具有强大的文本处理功能,使文本处理变得简单。此外还可以方便地使用C语言来扩展Ruby的功能。
若您曾经“想要一种简单的面向对象的语言”,或者认为“Perl的功能虽然好用,但它的语法真让人受不了”,又或者觉得“LISP系列语言的思想不错,但到处都是括号真让人讨厌,最起码算式应该按照通常的样式书写”。那么,Ruby或许能让您满意。

归纳起来,Ruby有以下优点:
1、解释型执行,方便快捷
Ruby是解释型语言,其程序无需编译即可执行。
2、语法简单、优雅
语法比较简单,类似Algol系语法。
3、完全面向对象
Ruby从一开始就被设计成纯粹的面向对象语言,因此所有东西都是对象,例如整数等基本数据类型。
4、内置正则式引擎,适合文本处理
Ruby支持功能强大的字符串操作和正则表达式检索功能,可以方便的对字符串进行处理。
5、自动垃圾收集
具有垃圾回收(Garbage Collect,GC)功能,能自动回收不再使用的对象。不需要用户对内存进行管理。
6、跨平台和高度可移植性
Ruby支持多种平台,在Windows, Unix, Linux, MacOS上都可以运行。Ruby程序的可移植性非常好,绝大多数程序可以不加修改的在各种平台上加以运行。
7、有优雅、完善的异常处理机制
Ruby提供了一整套异常处理机制,可以方便优雅地处理代码处理出错的情况。
8、拥有很多高级特性
Ruby拥有很多高级特性,例如操作符重载、Mix-ins、特殊方法等等,是用这些特性可以方便地完成各种强大的功能。

同时,由于是解释型语言,Ruby也有下列缺点:
1、解释型语言,所以速度较慢
2、静态检查比较少

Tags in this post...

面试题 相关文章推荐
PHP笔试题
Feb 22 面试题
到底Java是如何传递参数的?是by value或by reference?
Jul 13 面试题
c语言常见笔试题总结
Sep 05 面试题
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
Dec 07 面试题
数据库面试要点基本概念
Oct 31 面试题
索引覆盖(Index Covering)查询含义
Feb 18 面试题
盛大笔试题
Nov 05 面试题
介绍一下linux文件系统分配策略
Nov 17 面试题
系统管理员的职责包括那些?管理的对象是什么?
Jan 18 面试题
你们项目是如何进行变更控制的
Aug 26 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
Jun 27 面试题
J2ee常用的设计模式?说明工厂模式
May 21 面试题
JPA的优势都有哪些
Jul 04 #面试题
J2EE中的容器都包括哪些
Aug 21 #面试题
J2EE面试题
Mar 14 #面试题
J2EE包括哪些技术
Nov 25 #面试题
J2EE的优越性主要表现在哪些方面
Mar 28 #面试题
J2EE面试题集锦(附答案)
Aug 16 #面试题
国外的一些J2EE面试题一
Oct 13 #面试题
You might like
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
2011/01/07 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
微信小程序实现发红包功能
2018/07/11 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
python获取文件扩展名的方法
2015/07/06 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
详解Python打包分发工具setuptools
2019/08/05 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
keras slice layer 层实现方式
2020/06/11 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
数学系毕业生求职信
2014/05/29 职场文书
工地宣传标语
2014/06/18 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
紧急迫降观后感
2015/06/15 职场文书
2016高考感言
2015/08/01 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers