はじめに
こんばんは。Go言語の勉強やりたいんですが、積本がやまほどあるのでそれを消化するのと、今後はRubyの案件もとっていけるようにRubyの勉強をしようと思っています。
ちなみにGoは別日でちゃんとやる予定です。本も買ってるしね。
とりあえず、phpしかメインで触ってなかった僕ですが、pythonはまぁまぁわかるようになったし、rubyへの言語ジャンプも、頑張れば可能かなと思っています。
チュートリアルやオンラインの学習サイトなど見ながら気になった点を忘れないように上げときます。
主にphpとの違いを列挙してみました。
やってみた
べき乗
phpでは pow()
関数を使って表現するけど、rubyは演算で可能みたい
puts 10 ** 5 # 100000
型変換
to_s
とか to_i
とかでやるみたい
puts "test => " + 10 # Traceback (most recent call last): 1: from test01.rb:1:in `<main>' test01.rb:1:in `+': no implicit conversion of Integer into String (TypeError) puts "test => " + 10.to_s # test => 10
if文
目新しい感じはなかったけど、elsifが面白かった。
elseifにしなかったのはなんでだろう。
message = "BBB" if message == "AAA" puts "Yes" elsif message == "BBB" puts "No" else puts "???" end # No
unless
条件が正しくない場合に使うっぽい。
つまりif の否定式ってことだと思うけど、使い分けはどうやるんだろう?
rubyで動いているプロダクションコード見てみたい。
message = "AAA" unless message == "BBB" puts "BBBではありません。" end # BBBではありません。
case
switchみたいな感じだと思うけど、switchより便利っぽい
score = 70 case score when 0..30 puts "留年決定" when 31..60 puts "追試決定" when 61..85 puts "合格ライン" when 86..100 puts "天才だ!" end # 合格ライン
times
数値の回数繰り返し処理を行う
forとの使い分けを知りたい
10.times{|i| puts i } # 結果 0 1 2 3 4 5 6 7 8 9
upto
数値から指定した数字まで繰り返し処理を行う。
これはtimesよりはforとのすみ分けができてそう。
10.upto(15){|i| puts i } # 結果 10 11 12 13 14 15
downto
uptoの逆
10.downto(5){|i| puts i } # 結果 10 9 8 7 6 5
redo
繰り返し処理をもう一度やり直す。
これが一番へぇとなった。
○○の処理の場合、繰り返すみたいな処理って結構あったりするから、これは地味に使えそう。
phpだとどうやってるかな・・・
同じ値で上書きしたりしてお茶を濁したりしてそう。。。
count = 0 10.times{ count += 1 if count == 5 redo end puts count } # 結果 1 2 3 4 6 7 8 9 10 11
終わりに
phpとの違いがいろいろあっておもしろかった。
次も多分Ruby関係になりそう。
もしくは本読んだ書評。
まとまりないなこのブログ。
でもいいよね。備忘録だし。
sayonara sayonara