Ruby Tips!

RubyのTipsを紹介します

2014-04-01から1日間の記事一覧

ファイル名を変更する

Rubyでファイル名を変更するには、File.renameまたはfileutilsライブラリのFileUtils.mvを使用する。これらはファイルを移動するメソッドである。引数には移動元のパス、移動先のパスを指定する。移動先のパスがディレクトリで既に存在する場合、ファイルは…

擬似的なキーワード引数を使う

このエントリではRuby 1.8と1.9で良く使われる擬似的なキーワード引数について説明する。Ruby 2.0にはキーワード引数が追加されたが、本エントリでは扱わない。Rubyはキーワード引数をサポートしていないので、ハッシュをキーワード引数に見立てて使うことが…

文字列を文字ごとに繰り返す

Ruby 1.9ではString#each_charメソッドを使うと、文字列を文字ごとに繰り返すことができる。 "あいうabc".each_char{|c| puts c } =begin あ い う a b c =end Ruby 1.8では文字列を文字ごとに繰り返すメソッドが用意されていない。以下のように、String#spl…

Rubyで複素数を扱う

Rubyで複素数を扱うにはcomplexライブラリのComplexクラスを使う。Complexオブジェクトは、Kernel.#Complex、Complex.rect、Complex.poler、Numeric#to_c、String#to_cなどを使って生成する。 require 'complex' p Complex(1, 2) #=> (1+2i) p Complex.rect(…

古いメソッドを呼び出したら警告を表示する

プログラムの更新に伴って、呼び出しが推奨されない古いメソッドが生じることがあるかもしれない。そのようなメソッドは本来プログラム上から取り除くべきだが、いきなり取り除いてしまうと影響が大きいため、呼び出したら警告を表示するようにするのは良い…

数値の絶対値を求める

Rubyで数値の絶対値を求めるにはNumeric#absを使う。 整数や浮動小数点数のほか複素数の絶対値もこのメソッドで求められる。 require 'complex' p -1.abs #=> 1 p -1.0.abs #=> 1.0 p Complex(-1, -1).abs #=> 1.4142135623730951

ファイルの内容が同一かを比較する

2つのファイルの内容が同一かを比較したいのであれば、fileutilsライブラリのFileUtils.cmpメソッドが利用できる。このメソッドは引数で与えた2つのファイルの内容を比較し、同じであれば真を返す。自力でファイルを少しずつ読み込んで比較するよりも遥かに…

配列を連結する / 配列をマージする

単純にある配列の後ろに別の配列を連結した新しい配列を得るにはArray#+を使う。 またArray#concatは、ある配列の後ろに別の配列を破壊的に連結する。 p [1, 2, 3] + [4, 5, 6] #=> [1, 2, 3, 4, 5, 6] a = [1, 2, 3] a.concat([4, 5, 6]) p a #=> [1, 2, 3,…