`
秦朝古月
  • 浏览: 223803 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

读《The Ruby Way》

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

买了好久的《The Ruby Way(第二版)》,只是当作工具书,没有仔细读过。终于决定好好的把这本书读一遍。今天看了第一章,确实有不少收益。

Class是一个对象,而Object是一个类。作者把这句话强调了好多次。
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


单例类(继承单个实例的匿名类)。终于搞懂了原来这样生成的是单例类。
str = "hello"
class << str
  def hyphenated
    self.split("").join("-")
  end
end

str.hyphenated      # "h-e-l-l-o"


Proc对象。从来没有这么写过。
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


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics