文章目录
1. 变量
局部变量:只在局部代码区域内出现,只存在于他们原始的作用域
全局变量:变量名前加$
对象变量:变量名前加@
,作用域内置于、关联于当前对象
类变量:变量名前加@@
,作用域处于整个类
2.print和puts
print
是一个接一个打印输出在同一行,puts
是每次从新行开始打印
3. to_a
to_a
可以把范围转换成数组 (‘A’…Z").to_a
4. :good
:good
是符号,用作代码中固定的名字,仅仅是引用值,只初始化一次,而good是字符串,每次提到都会创建新对象。在创建散列表中可用符号区分键与值。
5. ruby中最后一个表达式的值,将默认为方法的返回值
6. super 上述继承类(父类),并调用上一级的同名方法,好处:减少重复
7. ruby的一些程序库和扩展(插件)复写了核心类的方法,以扩展ruby的通用功能。如:length
8. ruby中创建了基本类后,可以重新打开该类,重新定义方法,重新定义的方法立即生效
例如:
class ApplicationController
def hello
puts " hola, mundo!"
end
def goodbye
puts "goodbye, mundo!"
end
end
class ApplicationController
def hello
puts " 你好,ruby! "
end
end
aa=ApplicationController.new
aa.hello
aa.goodbye
s输出:
你好,ruby!
goodbye, mundo!
9.代码块
代码块本质是匿名的、无名的方法或函数,&code_block
宏符号&
表明该参数是代码块
10. 字面数组
%w{a e i o u}
为字面数组
11. yield方法
yield方法,能自动检测传递给他的代码块,并将控制权交给该代码块
def each_vowel
%w{a e i o u}.each {|vowel| yield vowel}
end
each_vowel{|vowel| puts vowel}
输出:
a
e
i
o
u
12.lambda
可以用lambda方法,把代码块存储在变量中,然后用lambda对象的call方法来执行代码块,以及接受传递过来的任何参数。
parameter=lambda{|vowel| puts vowel}
parameter.call(5)
输出:5
13. require命令
require
命令可把外部文件(.rb)载入到当前程序中,·load
的效果与require基本相同,ruby程序员一般使用require而非load。load的效果仅当外部文件的代码有变动时才有用,或外部文件包含的是活动代码,需要立即执行。
14 include命令
模块本身是组织工具而不是类,include命令是把模块的内容放到当前作用域中
15.rake 命令
rake 表示“ruby 中的make”,通常用在rails项目中完成诸如单元测试,执行数据库迁移等事务,要执行rake任务,只需运行 rake 任务名