Rubyプログラミングを始めるための基礎知識とインストール:若手エンジニア/初心者のためのRuby 2.1入門(1)(3/3 ページ)
オープンソースのオブジェクト指向プログラミング言語「Ruby」の文法を一から学ぶための入門連載。最新版の2.1に対応しています。初回は、Rubyの概要や特長を紹介し、環境構築や「Hello World!」までの手順、プロンプトで対話的にRubyを使える「irb」の使い方なども解説します。
ちょっと高度な「Hello World!」(引数を付ける)
ただ単に画面に「Hello World!」と表示させるだけではつまらないので、コマンドライン引数を使って、任意の文字列を表示できるように改良してみましょう。
お好みのテキストエディターで、以下のように記述して「hello_xxx.rb」というファイル名で保存してください。
#!/usr/bin/env ruby # encoding: utf-8 puts "Hello #{ARGV[0]}!"
早速実行してみましょう。
$ ruby hello_xxx.rb Alice
すると、以下のような出力が得られます。
Hello Alice!
コマンドライン引数は、「ARGV」という名前の配列に格納されており、「ARGV[0]」で1番目の引数、「ARGV[1]」で2番目の引数…… という規則で引数を取り出すことができます。
「hello_world.rb」との違いは4行目のみです。文字列リテラル中の、「#{}」の中括弧の中はRubyのコードとして実行され、その評価結果に置換されます。ここでは、「ARGV[0]」はコマンドライン引数の1番目の文字列を返し、その文字列で置換されます。
文字列リテラルについては、次回詳しく説明します。
プロンプトで対話的にRubyを使える「irb」
「irb」(Interactive Ruby)を使うと、対話的にRubyを使うことができます。わざわざスクリプトを書いて実行するほどでもないときや、思いついた記述を手軽に試すときに役立ちます。
irbの起動
irbを起動するには、以下のコマンドを実行してください。
$ irb
すると、シェルのプロンプトがirbのプロンプトに変わります。デフォルトの状態では、以下のようになっています。
2.1.1 :001 >
irbで計算
では、irbを使って簡単な計算をしてみましょう。「21 + 21」と入力して[Enter]キーを押してください。
2.1.1 :001 > 21 + 21 => 42
「=>」に続いて、式を評価した結果が表示されます。
irbで変数を使う
変数を使うこともできます(変数については次回に詳しく解説しますが、他のプログラミング言語の経験があれば、何となく分かっていただけると思います)。
2.1.1 :002 > x = 21 => 21 2.1.1 :003 > y = 2 => 2 2.1.1 :004 > x * y => 42
irbでメソッドを定義
メソッドを定義することもできます(メソッドについても、変数と同様に連載中に詳しく説明します)。
2.1.1 :005 > def rabbit_say 2.1.1 :006?> "pyon pyon!" 2.1.1 :007?> end => :rabbit_say 2.1.1 :008 > rabbit_say => "pyon pyon!"
ここでは、「rabbit_say」というメソッドを定義して(:004〜:006)、実際にそのメソッドを呼び出して(:007)、「pyon pyon!」という文字列を得ています。
irbでアンダースコアを使うと……
アンダースコアを使うことで、前回の評価結果をそのまま流用することもできます。
2.1.1 :009 > 16.8 / 2 => 8.4 2.1.1 :010 > _ / 2.0 => 4.2
irbでクラスやメソッドを呼び出す
組み込みライブラリのクラスやメソッドを呼び出すこともできます。ここでは例として、時刻を扱う「Time」というクラスを使って、現在時刻を表示しています。
2.1.1 :011 > Time.now => 2014-02-03 15:17:20 +0900
irbのリファレンスを参考に
irbはRubyを学習する際に強力なツールです。本連載でも、通常のスクリプトとirbを併用して学んでいくスタイルを取ります。
さらにirbを深く知りたい場合は、リファレンスマニュアルのirbのページを参考にするとよいでしょう。
Rubyの学習に役立つ書籍や情報サイト
本稿の最後に、Rubyを学ぶに当たって役立つ書籍やドキュメントを挙げておきます。ドキュメントを上手に活用して、一流のRubyプログラマーを目指しましょう。
基本となるリファレンスです。言語仕様や標準ライブラリについて簡潔にまとまっています。
- 『プログラミングRuby 1.9 言語編』『プログラミングRuby 1.9 ライブラリ編』(ともにオーム社)
上述の2つの書籍は1.9向けに書かれていますが、最新の2.1においても十分通用する内容です。一通り読んだ後に、1.9系と2.X系との差分をキャッチアップすればよいでしょう。一つ一つ丁寧に解説されているので、深く学びたい方にお薦めです。
- 『メタプログラミングRuby』(アスキー・メディアワークス)
強力なメタプログラミングの技法が、分かりやすく、そして愉快な語り口で解説されている一冊です。さらなるステップアップを目指す方にお勧めです。
次回から、Rubyの文法を学んでいこう!
今回は、主に4つのトピックについて学びましたが、いかがでしたでしょうか。
- Rubyの概要と特長
- 開発環境のセットアップ方法
- スクリプトの実行方法
- irbの使い方
次回はRubyの文法基礎と称して、式や演算子、リテラル、コメント、制御構文などについて学びます。お楽しみに!
著者プロフィール
麻田 優真(Rails技術者認定シルバー試験問題作成者)
イタリア、ローマ生まれ。中学生のころHSPに初めて触れ、プログラミングの楽しさを知る。オープンソースやハッカーカルチャーを好む。C#からRubyに転向したときに、動的型付け言語の柔軟性やメタプログラミングの魅力に感動し、Rubyとともにプログラマーとしての人生を歩む決意を固める。
現在は奈良先端科学技術大学院大学で学生として所属するかたわら、株式会社アジャイルウェアでプログラマーとして従事。Ruby on Railsによるコンシューマー向けのWebサービスの開発などに尽力している。
好きなメソッドは、define_method。
Twitter:@Mozamimy、ブログ:http://blog.quellencode.org/
監修者プロフィール
山根 剛司(Ruby業務開発歴7年)
兵庫県生まれ。1997年からベンチャー系のパッケージベンダーで10年間勤務。当時、使用していた言語はJavaとサーバーサイドJavaScript。
2007年よりITコンサル会社に転職し、Rubyと出会って衝撃を受ける。基幹システムをRuby on Railsで置き換えるプロジェクトに従事。それ以来Ruby一筋で、Ruby on Railsのプラグインやgemも開発。
2013年より、株式会社アジャイルウェアに所属。アジャイルな手法で、Ruby on Railsを使って企業向けシステムを構築する業務に従事。
Ruby関西所属。
Twitter:@spring_kuma、Facebook:山根 剛司
関連記事
- 3万5000円の参加費でも内外から580人の参加登録:公用語に英語、「再起動」したRubyKaigi 2013が東京で開催
いったん終了していたRubyコミュニティ主催の年次イベントが再開。技術色、国際色を強め、盛況のうちに幕を閉じた - IT業界 転職市場最前線(48):Web業界、今から行くならRubyエンジニアが狙い目?
不況で冷え込んでいたIT業界の転職市場に、回復の兆しが見え始めている。だが、業種や職種によって採用数や条件に大きな差異が生まれている。転職市場の動向を追い、自身のキャリア戦略立案に生かしてほしい。 - 安定版のメジャーバージョンアップ:Ruby 2.0.0がリリース、大規模化対応の機能などを搭載
生誕20年となる節目を迎えて、プログラミング言語「Ruby」の最新版がリリースされた - 新バージョンで何が変わるのか、Rubyはどこへ向かうのか:まつもと×笹田、Ruby 1.9を語る
- いよいよ始まるRuby 1.9への移行:開発コアメンバが語るRubyの今とこれから(前編)
- Rubyの今後の進化の方向性とは?:開発コアメンバが語るRubyの今とこれから(後編)
- 互換性や脆弱性の問題にどう対応していくのか:Rubyが抱える課題、NaClの前田氏が講演
- Rails Hub情報局:「なんでRubyなんか作った!? 迷惑だ!」に対するMatzの答え
- Rails Hub情報局:Rubyはイノベーション言語として選ばれている
- Rails Hub情報局:Rubyのまつもと氏は、一発屋で終わるのか?
- Rails Hub情報局:Rubyに魔法は要らない
- 数々の“スペル”で高度なプログラミング:Rubyの魔術
- 晴読雨読@エンジニアライフ:『たのしい開発 スタートアップRuby』――なぜRubyistたちはあれほど楽しそうなのか
- Ruby 1.9.3に対応:「JRuby 1.7.0」登場、1年半ぶりのメジャーアップデート
JavaVM上のRuby実装「JRuby」の最新版となる「JRuby 1.7.0」が、10月22日にリリースされた。
Copyright © ITmedia, Inc. All Rights Reserved.