「Rubyプログラミング入門」正誤表

2001.02.25変更

2刷正誤表

■p.xi (目次)
誤      2.10.2 プロセスとのパイプ:open、popen
正      2.10.2 プロセスとのパイプ:open、IO.popen

■p.34 表1.3
誤      \w   英数字のクラス
正      \w   英数字とアンダースコア(_)のクラス

■p.39
10行目
誤      scan(/[^,]*/)
正      scan(/[^,]+/)

12行目
誤      scan(/[^,]*/)
正      scan(/[^,]+/)

12行目
誤      , kiwi"]
正      , "kiwi"]

■p.97 2.4.8.4項
誤      "0123456789".delete("1-37-9") #=> "045"
正      "0123456789".delete("1-37-9") #=> "0456"

■p.98 2.4.8.6項
誤	"SUBjcect:".downcase #=> "subject:
正	"SUBject:".downcase #=> "subject:

誤	"SUBjcect:".upcase #=> "SUBJECT:
正	"SUBject:".upcase #=> "SUBJECT:

■p.122 8行目
誤      open、popen、pipeなどのクラスメソッドで
正      open、IO.popen、IO.pipeなどで

■p.125 6行目
誤      ただし、この場合3個目以上の"\n"は
正      ただし、この場合3個目以降の"\n"は

■p.130 下から6行目
誤      SEEK_END
正      File::SEEK_END

■p.132 下から11行目
誤      例えば、WindowsのFAT32ファイルシステムでは、
正      例えば、WindowsやMS-DOSのファイルシステムでは、

■p.133 下から3行目
誤      0777&&~mask
正      0777 & ~mask

■p.138 dir-rec_eacch.rb 内
誤      da.collect!{|x| dir == "." ? x : File.join(dir, x)} 
正      da.collect!{|x| File.join(dir, x)} unless dir == '.'

■p.142 2.10.2節見出し
誤      プロセスとのパイプ:open
正      プロセスとのパイプ:open, IO.popen

■p.144 中ほど
誤      (一次停止)
正      (一時停止)

■p.150 下から4行目(表内)
誤      範囲が終端を含んでいるか否かの真偽
正      範囲が終端を含んでいるか否かの真偽(終端を含まないとき真)

■p.157 2.14.4.2項
この項削除

■p.158 グローバル変数の表内
誤      $,     split()のフィールド区切り(デフォルトはnil)
正      $;     splitの引数省略時のフィールド区切り(デフォルトはnil)

■p.166 中ほど
誤      ensure節でretryを用いると
正      rescue節でretryを用いると

■p.186
下から6行目
誤      標準添付ライブラリのMarshal
正      組み込みモジュールのMarshal

下から3行目
誤      require "marshal"
正      *この行削除*

■p.194 中ほど
誤      しかし特異メソッドなら可能です。
正      しかしメソッドの中で特異メソッドを定義することなら可能です。

■p.202 Columnの直上
誤      (現実にはスタック溢れでエラーが発生します)。
正      (現実にはスタック溢れで例外が発生します)。

■p.213 test-proc7.rbの直前
誤      returnはそれが記述されたブロックが所属するメソッドからのreturn
正      returnはブロックが記述されているメソッドからのreturn

■p.221 4.2 節
7行目
誤      マッチするか?
正      マッチするか? 戻り値はマッチ開始位置またはnil

8行目
誤      同上
正      同上。戻り値はMatchDataオブジェクト(後述)またはnil

■p.222 表4.2の下
誤      これらのオプションは、Regexp("ruby", "em")のように、Regexpの第2引数として指定できます。
正      これらのオプションは、 Regexp.new("ruby", Regexp::IGNORECASE, "e")のように指定できます。第2引数には、Regexpの定数であるIGNORECASE(i)、EXTENDED(x)、MULTILINE(m)あるいはそれらの和、第3引数には文字コードの指定を与えます。
(詳細はaddendum.htmlで)

■p.225 表4.3
誤      \w   英数字
正      \w   英数字と_(オプションによって日本語の文字なども含む)

誤      \W   非英数字
正      \W   英数字と_以外

誤      \S   非空白文字
正      \S   空白文字以外(オプションによって日本語の文字なども含む)

誤      \D   非数字
正      \D   数字以外(オプションによって日本語の文字なども含む)

■p.226 表4.4
誤      \w   [0-9A-Za-z]    英数字
正      \w   [0-9A-Za-z_]   英数字とアンダースコア

誤      \W   [^0-9A-Za-z]   英数字以外
正      \W   [^0-9A-Za-z_]  英数字とアンダースコア以外

■p.232
下から2行目
誤      ところで、最後の$~はMatchDataという独立したクラスのオブジェクトです。
正      ところで、最後の$~はMatchDataという独立したクラスのオブジェクトです。この値は「正規表現.match(文字列)」の戻り値としても得ることができます。ただし、マッチしない場合の$~やmatchの戻り値はnilです。

表4.7
誤      $'    マッチ直前の部分の文字列
正      $'    マッチ直後の部分の文字列

■p.237 2つ目のコード例およびそれに続く文章
誤      str.scan(/\bs\w*?x\b/)
正      str.scan(/\bs\w*x\b/)

誤      とすべきで、これが「sで始まりxで終わる単語の切り出し」の最終的な解になります。
正      とすべきで、こちらは\w*の後の?が不要になっています。これが「sで始まりxで終わる単語の切り出し」の最終的な解になります。

■p.280 5行目
誤      medule_eval
正      module_eval

■p.349
MatchDataに221を追加

■p.350
lengthから157を削除
「match………………221,232」を追加

■p.351
sizeから157を削除

■巻末奥付
誤     哲学の道
正     「哲学の道」

【索引のテキストファイル】

【新・索引】
「Rubyプログラミング入門」