Rubyメモ

[sc name=start]

基礎知識

  • まつもとゆきひろ氏によって開発されたオブジェクト指向スクリプト言語。
  • 1995年に公開されて以来、多くの開発者に支持。
  • 特徴

  • インタプリタ言語(コンパイル不要)
  • オブジェクト指向(数値などの基本的なデータ型も全てオブジェクト)
  • 動的型付け言語(変数にはどのような型の値でも代入)
  • オープンソース(Ruby 実行環境は無料で入手)
  • マルチプラットフォーム(Windows、Linux、Mac OS等様々な環境で動作)
  • Ruby on Railsは「同じことを繰り返さない」という理念を元に、徹底したルール化を行う
  • メモリが許す限り巨大な桁の整数を扱うことができます。
  • 処理系

  • CRuby (単に “Ruby” と言った場合はほとんどこれを指す)
  • JRuby
  • Rubinius
  • mruby
  • エディタ

  • vim
  • emacs
  • Sublime Text 2
  • TextMate (Mac 版のみ)
  • 学習方法

    下記の2冊がおすすめ。

    【新品】【本】初めてのRuby Yugui/著

    【新品】【本】初めてのRuby Yugui/著
    価格:2,376円(税込、送料別)

    メタプログラミングRuby [ パオロ・ペロッタ ]

    メタプログラミングRuby [ パオロ・ペロッタ ]
    価格:3,024円(税込、送料込)

    公式リファレンス

    公式リファレンス
    [browser-shot url=”http://docs.ruby-lang.org/ja/2.0.0/doc/index.html” target=”-blank” width=”200″ height=”150″]

    リファレンスマニュアル検索
    [browser-shot url=”http://docs.ruby-lang.org/ja/search/” target=”-blank” width=”200″ height=”150″]

    人気のあるgemの検索

  • The Ruby Toolbox
  • [browser-shot url=”https://www.ruby-toolbox.com/” target=”-blank” width=”200″ height=”150″]

    gemのAPIドキュメント

  • RubyDoc.info
  • [browser-shot url=”http://www.rubydoc.info/” target=”-blank” width=”200″ height=”150″]

    実行方法

  • 「irb」コマンド
  • ruby ファイル名.rb
  • [box style=”info”]1行にセミコロンの後ろに続けて命令を記載することも可能。[/box]

    表示方法

  • print:処理後に改行なし
  • puts:処理後に改行あり
  • p:データの形式が分かる
  • 文・式

  • セミコロン(;)を用いることで、複数の式を1行に記述することも可能
  • 式の途中で改行したい場合、バックスラッシュ(\)を用
  • # から行末の間はコメントとして解釈
  • 式展開(#{…})

  • 文字列の中では、#{式} の形式で 式展開 することが可能
  • 式が変数で、@ や $ で始まる場合は、{ } を省略することが可能
  • 式展開を抑止するには、# の前にバックスラッシュ(/)を記載
  • コマンド出力(`…`)

  • バッククォート(`)で囲まれた文字列は、バックスラッシュ記法や式展開が行われた後、コマンド出力として実行され、コマンドの実行結果が文字列として返さる。
  • コマンドの終了ステータスを得るには、$? を参照
  • ヒアドキュメント(

  • ヒアドキュメント(<<識別子)の構文を用いて、複数行の文字列を現すことが可能
  • 最後の識別子のみの行は、行頭や行末にスペースを入れることが許されない。
  • 変数

  • 小文字またはアンダーバー(_)で始まる変数は「ローカル変数」
  • アットマーク(@) で始まる変数は「インスタンス変数」
  • 2つのアットマーク(@@) で始まる変数は「クラス変数」
  • ドル記号($) で始まる変数は「グローバル変数」
  • 大文字で始まる識別子は「定数」
  • 埋め込みドキュメント

  • 「=begin」から「=end」までに記述された行は実行時には無視されますのでコメントの代わりに使うことも可能。
  • 「=begin」と「=end」は行の先頭に記述する必要がありますので注意
  • 条件分岐

    amari = 10 % 3
    
    if amari != 0 then
      print("割り切れませんでした¥n")
      print("余りは", amari, "です¥n")
    end
  • 条件式の後に改行がある場合は「then」を省略することが可能
  • 「unless」文:条件式が偽の場合の処理を記述
  • CASE文

    sum = 0
    product = "Apple"
    
    case product
    when "Melon","Banana" then
      sum = sum + 500
    when "Apple","Lemon","Orange" then
      sum = sum + 150
    end
    
    print("料金は", sum, "です")

    複数の条件分岐

    city = "Nagoya"
    
    if city == "Tokyo" then
      print("東京です")
    elsif city == "Osaka" then
      print("大阪です")
    elsif city == "Nagoya" then
      print("名古屋です")
    else
      print("その他の都市です")
    end
  • else if ではなく elsif ですので注意
  • 条件演算子(?:)

    result = 80
    flag = result > 60 ? "合格" : "不合格"
  • 変数「result」が「60」より大きいかどうかで変数「flag」に格納される値を判断
  • 式修飾子(if修飾子、unless修飾子)

  • 真の時に実行する式 if 条件式
  • クラスの継承

    class SuperUser < User

    [box style=”info”]SuperUser が親クラスUserを継承[/box]

    参考にさせてもらったサイト

  • TECHSCORE
  • Rubyist Magazine
  • とほほのWWW入門
  • RubyLife
  • [sc name=end]

    タイトルとURLをコピーしました