读《The Ruby Way》

从06年10月开始接触Ruby,眨眼间已经过了3年半了。虽然用了这么久,感觉真的不是很精通。虽然已经过了而立之年,但感觉自己还是太浮躁了。浪费了好多时光在游戏上。

买了好久的《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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值