曾经,我非常羡慕那些人见人爱的人,我也想要变成那样,可是后来我才明白人见人爱也是需要天赋的,后来我开始默默努力,我想,就算我不能让每个人都喜欢我,至少因为我做的努力能得到别人的尊重。

ruby

Ruby是服务器端脚本语言,是一个日本人在1993年创建的,Ruby是开源的、解释性的、面向对象的、语法简单的语言。


Ruby一般都是从命令行运行,所以命令行选项有:

  • -a 与-n和-p一起使用时,可以打开自动拆分模式。
  • -c 只检查语法,不执行程序。
  • -C dir 在执行前改变目录
  • -d 启动调试模式(等价于 -debug)
  • -F pat 指定pat作为默认的分离模式
  • -e prog 指定prog作为程序在命令中执行。可以指定多个-e选项,用来执行多个程序
  • -h 显示命令行选项的一个概览
  • -i 把文件内容重写为程序输出
  • -I dir 添加dir作为加载库的目录
  • -v 显示版本
  • ....

所有的Ruby文件扩展名都是.rb,比如可以把下面的代码放在test.rb中:

#!/usr/bin/ruby -w
 
puts "Hello, Ruby!";

希望运行这个ruby文件,只需要执行下面的命令:

ruby test.rb

 

Ruby中是大小写敏感的。

Ruby中的BEGIN和END语句使用如下所示:

#!/usr/bin/ruby
 
puts "这是主 Ruby 程序"
 
END {
   puts "停止 Ruby 程序"
}
BEGIN {
   puts "初始化 Ruby 程序"
}

BEGIN中的语句会在程序的最开始运行,END中的语句会在程序的结束时运行;

 

Ruby中的注释符号为#,如下所示:

name = "foo" # 这是注释
#这也是注释
=begin
这是注释
这些都是注释
=end

 

Ruby数据类型有Number、String、Ranges、Symbols以及true/false/nil这几个特殊值,同时还有更重要的数据结构 -- Array和Hash。

Number数据类型中有整型(Integer)和浮点型(float),字符串类型就是'foo'类似的普通字符串类型,还支持一些反斜线符号,数组即 ['foo', 10, 3.14, 'this is a string']等,即可以是任意的类型,哈希类型就是 colors = { "red" => oxf00, "grenn" => 0x0f0, "blue" => 0x00f } ,由此可见,Ruby这门语言也是非常松散的,约束性不强,这样对于一些小项目发挥空间会更大一些;最后范围类型就是指一个区间,比如 (1...5)意味着包含值1,2,3,4,5。

Ruby是一种完美的面向对象的变成语言,面向对象编程语言的特性包括数据封装、数据抽象、多态性、继承等。以车辆为例,包括车轮、马力、燃油等数据成员,包括暂停、驾驶、超速等函数,所以,就可以定义Vehicle这个类如下所示:

Class Vehicle
{
   Number no_of_wheels
   Number horsepower
   Characters type_of_tank
   Number Capacity
 
   Function speeding
   {
   }
 
   Function driving
   {
   }
   
   Function halting
   {
   }
}

通过给这些数据成员分配不同的值,就可以创建Vehicle的不同实例。

在Ruby中定义类如下:

class Customer
end

即可以使用end终止一个类,类中所有数据成员都是介于类定义和end关键词之间。

 

Ruby中的变量有四种:

  • 局部变量 - 就是在方法中定义的变量,在方法外不可用,局部变量以小写字母或者_开始
  • 实例变量 - 实例变量可以跨任何特定的实例。实例变量在变量名之前放置@符号。
  • 类变量 - 即可以跨不同的对象使用。类变量属于类,且是类的一个属性。类变量在变量名之前放置@@符号。
  • 全局变量 - 类变量不能跨类应用,如果希望可以跨类使用的变量,就可以定义全局变量,全局变量总是使用美元符号 $ 开始的。

Ruby中使用new方法创建对象,如下所示:

cust1 = Customer. new
cust2 = Customer. new

 

Ruby中可以声明带参数的new方法,但是需要在类中声明方法 initialize,这是一种特殊类型的方法,将在调用带参数的类的new方法时执行,如下:

class Customer
   @@no_of_customers=0
   def initialize(id, name, addr)
      @cust_id=id
      @cust_name=name
      @cust_addr=addr
   end
end

在这里,id、name、addr作为局部变量的initialize方法,def和end用于定义Ruby方法initialize。这就可以创建类的对象实例了:

cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

 

posted @ 2018-12-30 13:39  Wayne-Zhu  阅读(...)  评论(...编辑  收藏

一分耕耘,一分收获。