ruby で数値オブジェクトの演算
#07 数値的オブジェクトの演算
http://dotinstall.com/lessons/basic_ruby/4707
を参考に
数値的オブジェクトの学習
ruby では分数を
Rational() で表す
2/3 を表すなら
x = Rational(2,3)
puts x
とすると
2/3 となるはずが
undefined method `Rational’ for main:Object (NoMethodError)
となってしまう
原因は ruby のバージョンの違いで
私の場合 ubuntu ソフトウェアセンターでインストールしたため
ruby -v で確認すると
1.8.7
だった
おそらく、バージョン違いによる関数の取り扱い変更が
原因と思われるので
ruby ubuntu 1.9.3
で検索し
http://www.sssg.org/blogs/naoya/archives/2489
を参考に
sudo apt-get install -y ruby1.9.3
でインストール
これで、もう一度バージョンチェックすると
ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
で更新を確認
再度実行すると
2/3 と表示された
どうやら、バージョンの違いだったようだ
これと同様でよくあるのが Android
こっちはもっとバージョンによりAPIが変わるため
古い ver 2.2 などのアプリ作成本を参考に行うと
エラー連発になったりする
ちなみに、最新は4.2 あたりで
Nexus 7 に搭載されている
以前、Linux サーバー構築講座を受けたときに
バージョンを講座のものと同じにすることで
余計な手間がかからないし再現性ができると
あったので、これが生かせる状況になった
話がそれてきたので、rubyの演算子について
これも、ほかの言語とあまりかわらない
+ – * / % はおなじ意味
**で、べき乗となる
もし、5の2乗とするなら
x = 5 ** 2
puts x
とすると、
25 になる
ちなみに、ruby では分数の計算もできる
Rational() で分数が扱えるので
x = Rational(2,3) + Rational(5,6)
puts x
とすると
3/2
となる