[#47045] Is Ruby1.8.7 end-of-life? — "ISHIKAWA Takayuki" <rechka_osaka@...>
こんにちは、石川です。
4 messages
2010/05/03
[#47049] fileのopenに関する動作についての質問 — 高橋作郎 <sakurou3960@...>
はじめまして。
14 messages
2010/05/04
[#47050] Re: fileのopenに関する動作についての質問
— "Hideo Konami" <konami@...>
2010/05/04
小波と申します。
[#47051] Re: fileのopenに関する動作についての質問
— 高橋作郎 <sakurou3960@...>
2010/05/04
2010年5月4日21:18 Hideo Konami <konami@kyoto-wu.ac.jp>:
[#47093] [ANN] Ruby/Tk-Kit for RubyInstaller 1.9.1p378rc2 — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
6 messages
2010/05/20
[#47104] rails3 ドキュメント翻訳について — Makoto Kuwata <kwa@...>
桑田といいます。
11 messages
2010/05/24
[ruby-list:47052] Re: fileのopenに関する動作についての質問
From:
rubikitch@...
Date:
2010-05-04 12:48:28 UTC
List:
ruby-list #47052
From: 高橋作郎 <sakurou3960@gmail.com>
Subject: [ruby-list:47049] fileのopenに関する動作についての質問
Date: Tue, 4 May 2010 20:40:03 +0900
るびきちです。
> open("q.dat", "r") do |f|
> while line = f.gets
> qz[n] = line.chomp
> ans[n] = f.gets.chomp
> n += 1
> end
> end
>
>
> 上記のサンプルだと、lineに代入されるのは f.getsで
> 配列qzと配列ansには同じ要素が代入されるように
> 僕の目には映るのですが。。。
なるほど。f.getsが固定された値(同じ変数)に見えるのですね。
しかし、f.getsはメソッド呼び出しで、getsはファイルから1行読み込むメソッドなので、
呼び出すたびに値は変化します。
あまり知られていませんが、学習にはxmpfilterというツールが便利です。
これは、行末に # => というマークを入れると、その行の式の値を書き出してくれるものです。
ループ等で2回以上その行を通ったらカンマの後で書き出されます。
出力結果もRubyスクリプトなのでエディタと組み合わせて使うと、便利です。
「gem install rcodetools」を実行するとインストールできます。
では、題意のスクリプトをxmpfilterにかけてみましょう。
$ cat sample.rb
# -*- coding: utf-8 -*-
qz = []
ans = []
n=0
open("q.dat", "r") do |f|
while line = f.gets
line # =>
qz[n] = line.chomp # =>
ans[n] = f.gets.chomp # =>
n += 1
end
end
$ cat q.dat
first
second
third
fourth
$ xmpfilter sample.rb
# -*- coding: utf-8 -*-
qz = []
ans = []
n=0
open("q.dat", "r") do |f|
while line = f.gets
line # => "first\n", "third\n"
qz[n] = line.chomp # => "first", "third"
ans[n] = f.gets.chomp # => "second", "fourth"
n += 1
end
end
では、勉強がんばってください。
--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/
Twit: http://twitter.com/rubikitch/
『Ruby逆引きハンドブック』 http://d.hatena.ne.jp/rubikitch/20090525/rubybook