Ruby Tips!

RubyのTipsを紹介します

2014-03-17から1日間の記事一覧

浮動小数点の数値を比較する

一般的に浮動小数点は精度の問題から完全一致による比較が難しい。 一例として、1.0と、0.1を10回加算した数値は一致しない。 v0 = 1.0 v1 = 0 ; 10.times{ v1 += 0.1 } p v0 == v1 #=> false 浮動小数点の比較を行うには、一致とみなす許容値を決めて、数値…

複数行にまたがる正規表現のマッチを行う

Rubyでは/./mのように正規表現リテラルに続けてmを書くと、メタ文字.が改行にマッチするようになる。 これにより複数行にまたがる正規表現のマッチが行える。以下は.が改行にマッチすることを確認するための検証コードである。 p(/./ =~ "\n") #=> nil p(/./…

Rubyで多次元配列を表現する

Rubyに多次元配列は存在しないので、配列の配列を使って多次元配列を表現する。 array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] p array[1][2] #=> 8 多次元配列を効率的にnilで初期化するには、Range#mapとArray#newを組み合わせて使うと良い。2次元配列の場合…

RSSのパースと生成

RubyでRSSのパースと生成を行うには、rssライブラリを使用する。RSSのパースにはRSS::Parser.parseを使う。 引数にはRSSの文字列か、RSSのURLを与える。 チャネルの情報にはchannelで、アイテムにはitemsでアクセスできる。 require 'rss' url = "http://rub…

nkfライブラリによる文字コードの推測

Rubyで日本語の文字列の文字コードを推測するには、nkfライブラリを使うと良い。 nkfライブラリで文字コードを推測するには以下のようにする。 require 'nkf' NKF.guess("にほんご")NKF.guessの返却値はRubyのバージョンにより異なる。 Ruby 1.8では、NKF::U…

Rubyスクリプトの実行

Rubyの実行はrubyコマンドで行う。Rubyはスクリプトが引数に与えられると、そのスクリプトを実行する。 test.rbというRubyスクリプトが存在するとして、これを実行するには単に以下のようにする。 ruby test.rb-eオプションを使うと、コマンドラインにRubyス…