2010-02-21

Ruby的特点

1、完全面向对象 在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数、浮点数等。 2、变量没有类型 Ruby不像其他静态语言,需要事先声明变量的类型,给变量赋予什么类型数据该变量就是什么类型的。 3、任何东西都有值 不管是数学或者逻辑表达式还是一个语句,都有值 4、变量的命名规则
  • 变量(variable)一般由小写字母、下划线开头
  • 全局变量(global variable)由$开头
  • 实例变量(instance variable)由@开头
  • 类变量(class variable)由@@开头
5、已经定义的类可以在运行时修改 Ruby是动态语言,你可以在程序中修改先前定义过的类,也可以在某个类的实例中定义该实例特有的方法,这叫做原型方法(prototype)
class DemoClass
  def methodA
    "general methodA"
  end
end

dc = DemoClass.new
dc.methodA                #"general methodA"

def dc.methodA
  "special for this instance."
end

dc.methodA            #"special for this instace."
6、强大的字符串处理 Ruby的字符串非常强大,因为它支持表达式、函数等
say = "hello world!"
puts "Tom said #{say}"                 #Tom said hello world!"
注意:如果是类变量或者是实例变量可以省略花括号"{}" 7、灵活的交互式环境 打开控制台,输入irb,按回车键即可进入交互式环境 8、丰富的文档支持 例如查找字符串的replace方法,只需在控制台输入ri String#replace,按回车键即可查看到replace方法的文档说明 9、Ruby吸收了Perl的正则表达式,Phthon的简单性可读性,Smalltalk的纯面向对象和单继承,LISP的无穷嵌套的语法,Java的线程...
  • 创建正则表达式
    • 从 Regexp 类创建:
       a = Regexp.new('^#.*')
    • 用 PERL 方式构建:
       a = /^#.*/
    • 用 %r{} 构建:
      a= %r{^#.*}
  • 匹配操作 Regexp#match方法对字符串匹配正则表达式。如果失败了,返回nil;如果成功,则返回MatchData类的一个事例。MatchData对象让你访问关于这次匹配的所有可用信息。所有这些好东西是通过$变量得到的
    irb(main):001:0> re = /(\d+): (\d+)/    #match a time hh:mm
    => /(\d+): (\d+)/
    irb(main):002:0> md = re.match("Time: 17:12pm")
    => #<MatchData "17:12" 1:"17" 2:"12">
    irb(main):003:0> md.class
    => MatchData
    irb(main):004:0> md[0]
    => "17:12"
    irb(main):005:0> md[1]
    => "17"
    irb(main):006:0> md[2]
    => "12"
    irb(main):007:0> md.pre_match
    => "Time: "
    irb(main):008:0> md.post_match
    => "pm"
    irb(main):009:0> $&
    => "17:12"
    irb(main):010:0> $1
    => "17"
    irb(main):011:0> $2
    => "12"
    irb(main):012:0> $`
    => "Time: "
    irb(main):013:0> $'
    => "pm"
    irb(main):014:0> $~
    => #<MatchData "17:12" 1:"17" 2:"12">
blog comments powered by Disqus