设为首页 加入收藏

TOP

ruby语言是什么东西(一)
2017-10-10 12:07:40 】 浏览:2650
Tags:ruby 语言 什么 东西

1、简介
    Ruby是日本的Yukihiro Matsumoto写的,简单易学的面向对象的脚本语言,像perl一样,有丰富的文字处理、系统管理等丰富 功能,但是ruby要简单,容易理解和扩充。跟python很类似,但是在国内远没有python有名。

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

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


一般认为,他有如下特点:

  • 简单 
    解释型语言(インタプリタ),所以不必事先编译(コンパイル)。
    变量没有类型的区分,虽然可以省去类型错误的担忧,但也会引起编译时候检查的脆弱。
    变量不需要定义。
    简单的语法,多从Eiffel继承而来。
    不需要内存管理,系统提供GC(ガーベージコレクタ)处理机制。
  •  纯的面向对象的语言
    一切都是对象,像整数等类型从开始就被设计为对象来处理。
    class(クラス),继承,method(メソッド)等
    (特殊方法?)特異メソッド 
    module(モジュール)によるMixin 
    迭代(イテレータ)和闭包(クロージャ)。一个在闭包开始时定义的资源在闭包结束后会被释放, 适合于socket,数据库连接,文件句柄等。
  • 脚本语言
    解释执行
    很强的文字处理能力和正则表达式
    直接访问OS,用ruby编写系统程序也是可能的。
  • 其他
    支持多种长整数,内存允许,可以进行很大数的计算操作。
    具备异常处理能力,具备java的异常处理功能。
    dynamic loading(ダイナミックローディング )。可以在运行时候重定义自己, 类也可以在运行时继承/取消继承。
    线程。现在的ruby已经有线程的概念,Ruby2.0好像能支持本地线程。
    反射(Reflection)。Ruby可以看到程序的内部,比如一个模块是否含一个特定方法, 一个对象是哪个class等等。类似java。
    扩展性。C api。
    发行许可证。基于Ruby Artistic License (BSD样式的)和GPL。

2、环境安装

(1).安装1.可以从www.ruby-lang.org下载源代码进行安装。

(2).解压缩源文件,进入安装目录

#./configuremake

#make 

#install

3.使用

(1). 使用irb。irb是一个交互接口,在shell里运行它,首先显示提示符,等待输入;用户输入之后,它在进行处理,把结果显示给用户。

#irb 

irb(main):001:0> $str="hello world!/n" 

=> "hello world!/n" 

irb(main):002:0> print $str 

hello world! 

=> nil 

irb(main):003:0> 


(2).像其他语言一样,从程序文件运行

[root@tserver /root]# chmod a+x foo.rb   

[root@tserver /root]# cat foo.rb

#!/usr/local/bin/ruby -w

puts "Hello, World!"

 

[root@tserver /root]# ruby foo.rb

Hello, World!

[root@tserver /root]# ./foo.rb

Hello,World!

[root@tserver /root]#

 


(3).Ruby使用方法 
ruby [ option ...] [ -- ] [ programfile ] [ argument ...]pre>

关于Ruby的命令行参数,可以参考相关文档。

4.简单例子

 

 def sayGoodnight(name) 
       result = "Goodnight, " + name
      return result
end

# Time for bed...
puts sayGoodnight("John-Boy")
puts sayGoodnight("Mary-Ellen")

    可以看到,ruby的语法还是比较简单的,首先,你不必每行都写个分号, Ruby注释以#开头,直到行尾。
    Methods定义以关键字def开始,接着是方法名和方法参数, ruby不需要用braces来界定程序主体,只需要关键字end就行了。
    这个程序也相当简单,第一行把``Goodnight, ''加上参数name,并把它赋给了局部变量result,第二行把结果返回给调用者。注意我们不需要定义变量result。
    最后我们调用了2次这个方法,并把结果传给puts函数,这个函数简单的再新行上打印传给它的参数而已,最后结果像这样:

 

Goodnight, John-Boy
Goodnight, Mary-Ellen

 

      其实 puts sayGoodnight("John-Boy")  包括了2个函数调用,一个put系统函数,一个sayGoodnight函数。但是为什么puts调用没有用括号呢?实际上,下面的调用都是等价的:

 

puts(sayGoo
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ruby+selenium-webdriver一步一步.. 下一篇ruby 基础知识(一)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目