ruby の数値的オブジェクトのメソッド

ruby の数値的オブジェクトのメソッド
#08 数値的オブジェクトのメソッド
http://dotinstall.com/lessons/basic_ruby/4708
を参考に
数値的オブジェクトで使えるメソッドについて学習
型変換メソッドは
10.5 を整数にするなら
p 10.5.to_i
とする
.to_i は整数にする関数
ruby の場合、
javaとかPHP , C++ とかと違って関数に() がついていないので、最初のうちはわかりにくいかも
.to_ とつくのは、ほとんど型変換の関数
よくあるのが、文字列から整数への変換
あと、分数にする関数があり、それが .to_r
rは Rational の意味
p 10.5 .to_r
とすると
10.5 が分数になり
(21/2)
となる
四捨五入するメソッドもあり、それが .roud
p 10.5 .round
とすると、四捨五入されて11になる
p 10.5 .ceil なら繰り上げ
p 10.5 .floor なら切り捨て
乱数の発生なら rand()
これは、関数らしく()がついている
引数に乱数の発生させる幅を指定
p rand(100)
なら100までの乱数となる
数学的なものを使うには、java script などでおなじみ
Math 関連をつかう
平方根を扱うなら .sqrt() を使う
例えば、2の平方根なら
p Math.sqrt(2)
とする
結果は
1.4142135623730951

ruby で数値オブジェクトの演算

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
となる

ruby のクラスとインスタンス

ruby のクラスとインスタンス
#06 クラスとインスタンスを理解しよう
http://dotinstall.com/lessons/basic_ruby/4706
を参考にする
今回はクラスとインスタンス
p “hello”.lengthにしたら、結果は5
これは5文字だから
クラス=設計図
インスタンス=実体化したデータ
例えば
p “hello”
なら
String クラスで
hello がインスタンス
となる
公式サイトは
http://www.ruby-lang.org/ja
だけど
英語英語なら
http://www.ruby-lang.org/en/
使え関数については英語版の
http://www.ruby-doc.org/core-2.0/
が最新だけど
core- の番号を使っているバージョンにすれば
そのリファレンスもみれる
私の場合
ruby -v だと
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
なので
http://www.ruby-doc.org/core-1.8.7/
で調べた
Classes の横の検索欄で調べれば
クラスから調べることができる

ruby のオブジェクトを表示するメソッド

ruby のオブジェクトを表示するメソッド
print でメッセージを表示したけど、これに似たのが
puts

p
それぞれ動作が異なる
print は普通に表示する
PHPの echo とかとおなじかんじ
, で区切って表示することもできる
print “hello”,” world”
putsは、改行つきで表示してくれる
なので、 \n とかつけなくても改行されるので楽
p は
””も一緒表示する
p は、オブジェクト型がわかるように表示する

ruby で hello world

ruby で hello world
Rubyのコーディング規則は
https://github.com/styleguide/ruby
rubyは、拡張子が .rb になる
ちなみに、PHP だと .php
ruby の学習するので、
mkdir ruby でディレクトリをつくり
ここで作成していく
vim hello.rb
でファイルを作成
内容は
print “hello world”
とする
実行するには
java みたいに
ruby hello.rb
として
ruby プログラム名
になる
なお、ruby の文の区切りは改行で行える
PHP java C++ のように ; で区切れるけど
大抵の場合は改行でも OK
また、1行コメントの場合
シェルスクリプトのように
#をつける
# コメント
というようになる
また
java とかで、複数のコメントがあるけど
/*
コメント
*/
というのが java の場合で
ruby の場合だと
=begin
コメント
=end
というように、複数行になる場合は
=begin と =end の間に書く

ruby の変数と定数

ruby の変数と定数
rubyの場合、変数は
x=10
st = “hello”
というように
変数名 = 値
と書く
java みたいに型を指定したり
PHPみたいに変数に $をつけたりしない
また、javascript のように var で宣言もしないので
楽かもしれない
rubyの場合、変数は
英小文字か _で始まることが条件
あと、どの言語でも同じだけど、予約後は使えない
次に定数について
c/C++,PHPだと define() を使って定義する
ruby の場合だと
全部大文字で書く
ちなみにjava だと static final をつかう
java の static final に関しては
http://www.tohoho-web.com/java/variable.htm
を参考に
URLとかメールアドレスなど、値が変更しないものを定義のに使う
MY_EMAIL = “”
というようにしたり
URLを
SITE_URL = “http://localhost/”
にするなど