Symfoware

Symfowareについての考察blog

Rubyのif,else,switch,for 配列と連想配列、コメントの書き方

Redmine等、Rubyで書かれたOSSを使用することが多くなってきました。
ちょっとした修正や、プラグインの開発を行いたいときに困るので、
Rubyを勉強してみようと思います。

使用しているRubyのバージョンは「1.9.3」です。



if,elsif,else



言語によってelse ifの書き方違いますよね。
rubyだと「elsif」と記載するようです。「e」が省略されています。

if,elsifの後には評価式を記載。式の後に「then」を付けます。
if,elsif,elseの最後は「end」で終了。

また、実行時引数を取得するには、
ARGV[index]
とすれば良いようです。

文字の出力は「print」や「puts」が使えます。
違いは「print」は出力後改行しないが、「puts」は改行します。



  1. # -*- coding : utf-8 -*-
  2. flag = ARGV[0]
  3. if flag == 'k' then
  4.     puts 'きのこ派'
  5. elsif flag == 't' then
  6.     puts 'たけのこ派'
  7. else
  8.     puts '平和主義'
  9. end





実行してみると、狙い通りの動作になってます。


# ruby sample.rb k
きのこ派
# ruby sample.rb t
たけのこ派
# ruby sample.rb e
平和主義







switch,when



ifで書いたプログラムをswitchに変更してみます。

switch [変数名]
case [条件]
end

という形式。


  1. # -*- coding : utf-8 -*-
  2. flag = ARGV[0]
  3. case flag
  4. when 'k'
  5.     puts 'きのこ派'
  6.     
  7. when 't'
  8.     puts 'たけのこ派'
  9. else
  10.     puts '平和主義'
  11. end




実行結果は同様です。





for



RubyのforはPythonのforと同じで、他の言語で言うforeachみたいです。


  1. # -*- coding : utf-8 -*-
  2. ary = ['a', 'b', 'c']
  3. for item in ary
  4.     puts item
  5. end




実行結果


# ruby sample.rb
a
b
c






配列



配列は[]で定義。


  1. # -*- coding : utf-8 -*-
  2. ary = ['a', 'b', 'c']
  3. puts ary[0]
  4. puts ary[2]
  5. puts ary[100]




配列の要素数を超えてアクセスしてもエラーにはならず「nil」が返されます。


# ruby sample.rb
a
c
(空白)






連想配列



連想配列は{}で定義。


  1. # -*- coding : utf-8 -*-
  2. map = {'one' => 1, 'two' => 2, 'three' => 3}
  3. puts map['one']
  4. puts map['two']
  5. puts map['five']




存在しない要素にアクセスしてもエラーにならず「nil」が返されます。




コメントの書き方



1行コメントは「#」
複数行コメントは「=begin」ではじめて「=end」で終わる。


  1. # -*- coding : utf-8 -*-
  2. # 一行コメント
  3. =begin
  4. 複数行コメント
  5. 改行とか
  6. しても
  7. コメント扱い
  8. =end
  9. puts 'hello world!'


関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/03/20(木) 16:53:12|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Ruby + gem mailでメール送信時、「post_connection_check」「Non US-ASCII detected 」 | ホーム | Ruby シバン実行で「Exec format error」「No such file or directory」>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1354-ec52536e
この記事にトラックバックする(FC2ブログユーザー)