逍遥安卓2.7.2下载:Ruby一些笔记

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 15:16:02

正则表达式:
在Ruby中,创建正则表达式的方式是 /pattern/。比如编写一个模式,使之匹配 “hello” 或者“Hi”的字符串。这个正则表达式的写法是

/hello|Hi/

在程序中要检查一个字符串是否与指定的正则表达式匹配,采用=~ 匹配运算符

if name=~/Ruby|Rails/puts "true"end

属性的访问性:
ruby并不支持直接访问类中的属性,如果要访问类中的属性,需要先通过attr_reader:属性名(只读),attr_writer:属性名(只写),attr_accessor:属性名(读写)来设定属性的访问权限。ruby在类里没办法定义变量,只能在方法中定义变量。方法和方法之间如果想通信只能通过@变量,也就是实例变量进行通信,ruby通过attr_xxxx可以控制@变量的访问性。

方法的访问性:
方法的访问性是通过public,private和protected进行限制的。public :方法名1,方法名2……这样的方式进行声明的。属性的访问性可以放在前面,但方法的访问性要放在方法之后,如果放在方法前面会出现方法未定义的报错。除了初始化方法恒化private,其它方法缺省为public

类方法(静态方法)。 ruby中定义类方法如下(即类名或self)

class HelloWorld   def HelloWorld.hello(name)        print name," said Hello."    endendHelloWorld.hello("John")
class HelloWorld   def self.hello(name)        print name," said Hello."    endendHelloWorld.hello("John")

需要注意的是,类方法不能访问实例变量

类变量(静态变量),ruby中类变量是通过加@@标识的

类常量:
类中还可以定义常量,还是要求大写字母开头。类中不能定义和方法平缓的变量,但是可以定义和方法平级的常量,常量可以被所有方法调用。类常量的调用方法是类名::常量名

模块:
模块是ruby特有的功能之一。模块和类很像,但和类最大的不同在于模块不能实例化,也不能继承,模块的作用有两个,一个是用于提供命名空间。第二提供Mix-in功能。

模块的常量和类常用调用方法一样。模块名::常量名。模块的方法调用和类的方法调用不同,可以使用模块::方法名,也可以使用模块.方法名

模块定义的方法默认是不对外部公开的,(模块内没有public private protect关键字),要将方法对模块外部公开,必须使用module_function

module HelloModule   Version = "1.0"    def hello(name)       print "Hello, ",name,".\n"     end      module_function :hello #注意:冒号后不能有空格end p HelloModule::Version          #=>"1.0"HelloModule::hello("Alice")      #=> hello, Alice.include HelloModulep Version         #=>"1.0"hello("Alice")    #=>Hello, Alice

单引号和双引号的区别

单引号中不能包含变量,双引号中可以包含变量。在ruby中,单引号中的\n这样表示换行之类的转义字符都会无效,直接输出出来。

使用for
Ruby的for有两种用法

sum=0   for i in 2..5   sum+=1   end  puts sum  sum=0for i in 2..5  sum+=1endputs sum
names = ["a","b","c"]    for name in names   puts name     end  names = ["a","b","c"]for name in names puts nameend

注意hash输出结果,将键值都输出

name={"a"=>1,"b"=>2}   for n in name     puts n   end  name={"a"=>1,"b"=>2}for n in name  puts nend

迭代,其实迭代也是我们熟悉的循环中的一种

1.a=["a","b"]   a.each{   |n|   puts n   }  a=["a","b"]a.each{ |n| puts n}

4: hash算列表 ,ruby的hash格式用=>分隔,在调用hash数据时,ruby只能通过hash[name]调用

b={"a"=>1,"b"=>2}   puts b["a"]