从06年10月开始接触Ruby,眨眼间已经过了3年半了。虽然用了这么久,感觉真的不是很精通。虽然已经过了而立之年,但感觉自己还是太浮躁了。浪费了好多时光在游戏上。
买了好久的《The Ruby Way(第二版)》,只是当作工具书,没有仔细读过。终于决定好好的把这本书读一遍。今天看了第一章,确实有不少收益。
[b]Class是一个对象,而Object是一个类[/b]。作者把这句话强调了好多次。
[b]单例类(继承单个实例的匿名类)[/b]。终于搞懂了原来这样生成的是单例类。
[b]Proc对象[/b]。从来没有这么写过。
买了好久的《The Ruby Way(第二版)》,只是当作工具书,没有仔细读过。终于决定好好的把这本书读一遍。今天看了第一章,确实有不少收益。
[b]Class是一个对象,而Object是一个类[/b]。作者把这句话强调了好多次。
class Myclass
@x = 1 # 类实例变量,类对象MyClass的属性,MyClass本身就是个实例
def mymethod # 实例方法是无法访问类实例变量的
puts @x # 实例变量
end
def self.mymethod
puts @x
end
end
c = Myclass.new
c.mymethod # 由于实例变量没有被赋值,所以结果是nil
Myclass.mymethod # 类方法可以访问类实例变量,结果是1
[b]单例类(继承单个实例的匿名类)[/b]。终于搞懂了原来这样生成的是单例类。
str = "hello"
class << str
def hyphenated
self.split("").join("-")
end
end
str.hyphenated # "h-e-l-l-o"
[b]Proc对象[/b]。从来没有这么写过。
def power(e)
proc {|base| base**e}
end
square = power(2)
cube = power(3)
a = square.call(11) # 结果是 121
b = square.call(5) # 结果是 25
c = cube.call(6) # 结果是 216
d = square.call(11) # 结果是 512