初刷の正誤表

第ニ刷で修正された箇所の一覧です。 明らかな誤りではないものの、意味がわかりにくかったり、表現が適切でない文も修正しました。

p.x 下から10行目
p.8 2行目
p.8 下から11行目

(他の例ではオブジェクトをかぎかっこで括っている)

p.41 2.3の末尾

(唐突)

p.61 最後の段落の冒頭

(誰が使わないのか不明)

p.75 ページ中ごろの図
「真」と「偽」が逆になっています。「真」のときのみ、「文」が実行されます。
p.86 7行目

(「さらに」が2回)

p.90 本文下から2行目
p.91 上段のサンプルコード

「to..from」ではなく「from..to」です。 また、最後の「}」は「end」の誤りである他に、変数「sum」の 初期化が抜けています。 正しいソースは以下のようになります。

from = 10
to = 20
sum = 0
for i in from..to
  sum = sum + i
end
print sum, "\n"
p.107 2行目

(「もの」が2回)

p.142 サンプルコードのしたから2行目
p.148 中程
p.149 1行目
p.149 表9.2 backtraceの行
p.167 表10.4
p.257 中程
p.319 下から6行目
p.347 List 19.2

~@メソッドの説明に「180度回転させた座標を返す」とあるが、誤りなので差し替え:

class Vector
  :
  def +@
    self.dup               # 自分の複製を返す
  end
  def -@
    Vector.new(-@x, -@y)   # x, y のそれぞれの正負を逆にする
  end
  def ~@
    Vector.new(-@y, @x)    # 90度反転させた座標を返す
  end
end

vec = Vector.new(3, 6)
p +vec          #=> (3, 6)
p -vec          #=> (-3, -6)
p ~vec          #=> (-6, 3)
p.375 6行目
p.381 (3)のサンプルコード 下から5行目
p.381 (4)のサンプルコード

ページが変わったところでインデントが崩れています。実際は次の通りです。

module M1
  ...
end

module M2
  ...
end

class C
  include M1
  include M2
  include M1
end

p C.ancestors #=> [C, M2, M1, Object, Kernel]
p.381 (3)の10行目
p.432
「付録CD-ROMのディレクトリ構成」の図中、「ruby」、「Windows」、 「src」、「1.6.7」、「raa」、「manual」というディレクトリ名が それぞれブラケットで括られていますが、特別な意味はありません。 誤植です。
p.454 5行目

第二刷の正誤表

第三刷で修正された箇所の一覧です。

p.252 表14.6の見出しの上の行

第三刷の正誤表

p.345 図19.1の「?:」の説明