Memoize | 
					
						BasicWerk
						 
						EC Support
						 
						Technique
						 
						Facebook
						 
						 | 
				
20140815223707_ruby_file_open | 
| 
 ruby_file_open 
 File::open はブロック内でコードの実行が完了すると自動的に close してくれる(lisp 的に言うと with ブロック)。 ブロックのはじめで {|fh| ... } のようにシンボルを置くと、open したストリームをバインドしてくれる(Factor のレキシカル変数みたいだ)。 
 
% cat sample.txt
aaa
bbb
ccc
 
% cat read.rb
#! /usr/bin/ruby
# coding: utf-8
 
file = ARGV[0]
File::open(file){|fh|
    while line = fh.gets
        puts line
    end
}
 
% read.rb sample.txt 
aaa
bbb
ccc
 
 http://www2.atwiki.jp/kmo2/pages/16.html 
  | 
| © Shin Nakamura/BasicWerk 2014 |