`

Programming Ruby 2nd 读书笔记1

阅读更多

不应该算是新学Ruby吧,应该算是复习。Rails也用过一些,不过之前没有这样做过笔记。我曾经写过一个帖子,讨论关于Perl,Python和Ruby的,写得还比价客观。这里我只想表达一个观点,如果从语法和概念上说,我更喜欢Ruby。这不是我一个人的观点,至少我认识几个Python的小牛也认为Python的语法不是很好“玩”。譬如,那种缩进表示的Block,譬如你要用全局函数open,len。虽然我更prefer{}来表示一个block,不过坦白说Ruby用end我还是能接受的(我就纳闷了,明明一个end就很OK,为什么Delphi和Basic要用Begin和End呢?)。而那种File.new, -3.abs这样单纯的面向对象的语法更是让我着迷。当然了,我们要尽量的避免使用那种Perl的习惯,什么$_这种东西,能不用尽量别用。我本人认为Perl的脚本非常的难于维护^_^

 

      言归正传吧,这本书我2006年8月份就看过了,之后我也用Ruby写过一些“私人”脚本,帮助我的日常工作和娱乐。基本上我觉得Ruby是一个很有趣的语言,我对它的喜好仅次于C++(虽然Java我也经常用)。这个Blog系列就用来记录我复习Programming Ruby 2nd的笔记吧。

 

C03  Classes, Objects and Variables

1.  定义一个类

class Song
  attr_reader :name, :duration, :singer
  @@play = 0
  def initialize(name, duration, singer)
    @name = name
    @duration = duration
    @singer = singer
    @play = 0
  end
  def to_s()
    "[Song: #@name -- #@singer -- #@duration]"
  end
  def play()
    @play += 1
    @@play += 1
    puts("Play #{to_s} #@play -- #@@play")
  end
end

 

@xxx表示@x是一个instance variable,@@yyy表示@@yyy是一个class variable。to_s就是Java的toString()方法。 attr_reader表示之后的variable会有get方法。

 

C04 Containers, Blocks, and Iterators

1. Array

 

a = [ 3.14159, "pie", 99 ]
a.class -> Array
a.length -> 3
a[0] -> 3.14159
a[1] -> "pie"
a[2] -> 99
a[3] -> nil
b = Array.new
b.class -> Array
b.length -> 0
b[0] = "second"
b[1] = "array"
b -> ["second", "array"]
a = [ 1, 3, 5, 7, 9 ]
a[1] -> 9
a[2] -> 7
a[99] -> nil
a = [ 1, 3, 5, 7, 9 ]
a[1, 3] -> [3, 5, 7]
a[3, 1] -> [7]
a[3,2] -> [5, 7]a = [ 1, 3, 5, 7, 9 ]
a[1..3] -> [3, 5, 7]
a[1...3] -> [3, 5]
a[3..3] -> [7]
a[3..1] -> [5, 7, 9]
 

2. Hash

h = { 'dog' => 'canine', 'cat' => 'feline', 'donkey' => 'asinine' }
h.length -> 3
h['dog'] -> "canine"
h['cow'] = 'bovine'
h[12] = 'dodecine'
h['cat'] = 99
h -> {"cow"=>"bovine", "cat"=>99, 12=>"dodecine",
"donkey"=>"asinine", "dog"=>"canine"}

 

3.  Block

def fib_up_to(max)
  i1, i2 = 1, 1 # parallel assignment (i1 = 1 and i2 = 1)
  while i1 <= max
    yield i1
    i1, i2 = i2, i1+i2
  end
end
fib_up_to(1000) {|f| print f, " " }

produces:
    1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
 class File

  def File.my_open(*args)
    result = file = File.new(*args)
    # If there's a block, pass in the file and close
    # the file when it returns
    if block_given?
      result = yield file
      file.close
    end
    return result
  end
end
 

分享到:
评论
1 楼 Omnibus 2009-03-11  
BASIC係初學者之電腦語言,有BEGIN有END比較好解。

Delphi承自Pascal,剛好Pascal亦原為敎學電腦語言,所以又有begin同end。

相关推荐

    Programming Ruby 2nd.pdf

    根据提供的文件信息,可以提取以下关于Ruby编程语言及其入门书籍《Programming Ruby 2nd》的知识点: 1. Ruby语言概述:Ruby是一种功能强大且实用的编程语言,被许多开发者所喜爱。它以智能、优雅和有趣而闻名。...

    Programming Ruby - The Pragmatic Programmer's Guide, 2nd Edition (2005) [annotated]

    《Programming Ruby - The Pragmatic Programmer's Guide》第二版(2005年注释版)是一本在IT行业中享有盛誉的经典书籍,专门针对Ruby编程语言进行了深入浅出的讲解。该书不仅覆盖了Ruby语言的基础知识,还探讨了其...

    Programming Ruby 2nd Edition

    《Programming Ruby 2nd Edition》是关于Ruby编程语言的经典指南,尤其对于想要深入理解并熟练掌握Ruby编程的开发者来说,这本书具有极高的价值。Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的语法和强大的...

    Programming Ruby(读书笔记)-3章

    《Programming Ruby》是一本关于Ruby编程语言的经典书籍,它的第三章深入探讨了Ruby的基本语法和核心概念。在这一章中,作者介绍了变量、常量、符号、数组、哈希等核心数据类型,以及控制流(条件语句和循环)和方法...

    Programming Ruby 2nd

    《Programming Ruby 2nd》是编程领域的一本经典著作,由Dave Thomas、Chad Fowler和Andy Hunt合著,被广大开发者誉为“程序员的指南”。这本书深入浅出地介绍了Ruby编程语言,帮助读者掌握这种优雅而强大的语言。 ...

    Pragmatic Bookshelf, Programming Ruby 2nd

    ### 知识点一:《Programming Ruby》书籍概述 - **书籍名称**:“Programming Ruby”(也被称为“Pickaxe Book”) - **版本**:本书为第二版 - **作者团队**:本书由Dave Thomas、Andy Hunt、Thomas Stewart、...

    Programming ruby.pdf

    《Programming Ruby》是一本关于Ruby编程语言的经典著作,由Dave Thomas、Andy Hunt和Chad Fowler合著。这本书自2004年初版以来,一直是学习Ruby的首选资源,被誉为“Pickaxe”书,因其封面的图标而得名。Ruby是一种...

    Programming Ruby.pdf

    《Programming Ruby》被誉为是学习Ruby语言的最佳指南,这本书在IT界享有极高的声誉,被亲切地称为“镐头书”,其价值与影响力无远弗届。本书不仅详细介绍了Ruby语言的核心概念、语法结构以及编程实践,还深入探讨了...

    ruby学习资源(Programming Ruby, Learning Ruby, The Ruby Way)

    内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm

    Programming Ruby中文版第二版[高清扫描版][带书签]和Programming.Ruby-2nd[高清文字版][带书签].pdf

    1. **Ruby语法**:Ruby的语法结构清晰,易于理解。它支持多种编程范式,包括面向对象、函数式和过程式编程。书中会详细介绍变量、常量、运算符、流程控制语句、方法定义等基础语法。 2. **面向对象编程**:Ruby是...

    《The C Programming Language》读书笔记

    《The C Programming Language》这本书是C语言学习者的经典教材,对于初学者来说,它提供了深入浅出的讲解。本文将着重讨论第一章中提到的三个重要知识点。 首先,我们要理解循环终止的机制。在C语言中,常见的循环...

    Programming Ruby 1.9 (3rd edition)和源码

    《Programming Ruby 1.9 (3rd edition)》是一本专为程序员编写的关于Ruby语言的权威指南,这本书的第三版详细介绍了Ruby 1.9版本的语言特性、库以及编程实践。Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的...

    Programming_ruby-2nd.pdf

    1. 书籍介绍:《Programming Ruby - 2nd Edition》是一本关于Ruby编程语言的英文书籍。该书被多位业界知名人士推荐,并对Ruby语言的介绍和学习提供了重要支持。 2. Ruby语言的特点:Ruby被描述为一个强大且实用的...

    Programming Ruby

    1. **Ruby语言概述**:Ruby由松本行弘(Yukihiro Matsumoto)创建,设计理念是结合Smalltalk的动态性、Perl的实用性以及Lisp的表达力。Ruby强调代码的可读性和简洁性,其语法清晰,易于理解。 2. **面向对象编程**...

Global site tag (gtag.js) - Google Analytics