正则表达式: /hello|Hi/ 在程序中要检查一个字符串是否与指定的正则表达式匹配,采用=~ 匹配运算符 if name=~/Ruby|Rails/ puts "true" end 属性的访问性: 方法的访问性: 类方法(静态方法)。 ruby中定义类方法如下(即类名或self) class HelloWorld def HelloWorld.hello(name) print name," said Hello." end end HelloWorld.hello("John") class HelloWorld def self.hello(name) print name," said Hello." end end HelloWorld.hello("John") 需要注意的是,类方法不能访问实例变量 类变量(静态变量),ruby中类变量是通过加@@标识的 类常量: 模块: 模块的常量和类常用调用方法一样。模块名::常量名。模块的方法调用和类的方法调用不同,可以使用模块::方法名,也可以使用模块.方法名 模块定义的方法默认是不对外部公开的,(模块内没有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 HelloModule p Version #=>"1.0" hello("Alice") #=>Hello, Alice 单引号和双引号的区别 单引号中不能包含变量,双引号中可以包含变量。在ruby中,单引号中的\n这样表示换行之类的转义字符都会无效,直接输出出来。 使用for sum=0 for i in 2..5 sum+=1 end puts sum sum=0 for i in 2..5 sum+=1 end puts sum names = ["a","b","c"] for name in names puts name end names = ["a","b","c"] for name in names puts name end 注意hash输出结果,将键值都输出 name={"a"=>1,"b"=>2} for n in name puts n end name={"a"=>1,"b"=>2} for n in name puts n end 迭代,其实迭代也是我们熟悉的循环中的一种 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"] |
|