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

http://www.namaraii.com/rubytips/?%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9

 


© Shin Nakamura/BasicWerk 2014