はじめまして。yusukeと申します。Rubyについて技術ブログを書かせていただくことになりました。このブログを機にRubyを始めようと思ってくれると嬉しいです。では早速参りたいと思います。
目次
Ruby開発環境構築
1. オンラインIDE(Cloud9)
2. ローカル環境にインストールしたい場合
Rubyを触ってみよう
1. 変数と条件分岐
2. 繰り返し
3. メソッド
4. クラス
開発環境構築
1. オンラインIDEサービス(Cloud9)
Cloud9とはオンラインIDE(統合開発環境)サービスです。小規模なアプリケーションの開発やデータベースなどをクラウド環境で利用できるサービスです。
開発環境を整えるのは、プログラミングを学ぶ者にとって最初の難関となりますが、このサービスを使うと面倒な作業は必要ありません。すぐに始めたい人や、ローカル環境にインストールできなかった人はCloud9を使ってみましょう。
Cloud9
利用する手順は以下のとおりです。
1,Cloud9で新規ユーザー登録します。Sign_upをクリックし、必要な情報を記入してください。(GithubやBitBitbucketとも連携しており、そのアカウントからもログインできます。)
2,登録完了後、ダッシュボードが表示されるので、「Create a new workspace」をクリック。以下の様な画面が表示されます。
3,workspace名や公開設定を変更し、Blankテンプレートを選択。「create workspace」をクリック。
※RailsテンプレートやRails_Tutorialテンプレートは今回は使用しません。
※ターミナルで確認した所、BlankテンプレートはRailsは入っていませんが、Ruby(執筆時2.3)はインストールされています。
4,作成したworkspaceが表示されれば、完了です。
簡単ですね。これでクラウド環境でRubyが使えるようになりました。
左に表示されているファイルツリーで右クリックして、フォルダやファイルを作成します。拡張子は「.rb」を使います。
2.ローカル環境にインストールしたい場合
ローカルの環境にRubyをインストールする際には、公式サイトのドキュメントを利用すると良いでしょう。ここでは詳しいやり方は省略させていただきます。
公式サイト
Windows向け
公式サイトにあるようにWindowsにRubyをインストールする方法はいくつかあります。ソースからコンパイルしてインストール出来ない場合は、より簡単にインストールできるサードパーティ製のコンパイル済みのバイナリを使用すると良いでしょう。
Mac向け
MacではRubyは標準コマンドとして利用することができますが、使用したいバージョンよりも古い可能性があります。
自分で追加してインストールする場合、ソースからコンパイルしてインストールするか、パッケージ管理システムを利用してインストールするか選べます。
Rubyを触ってみよう
1. 変数と条件分岐
まずは変数の使い方と条件分岐です。
#変数の定義 #名前 name01="田中" name02="高橋" #点数 a=60 b=80 #点数の平均を求める式 ave=(a+b)/2 #条件分岐 if構文 =begin if 条件 then 条件が成り立った時に実行する処理 else 条件が成り立たなかった時に実行する処理 end =end if a>b then max=a min=b else max=b min=a end #コンソールに引数を出力する print(name01,"さんの点数は",a,"点\n") print(name02,"さんの点数は",b,"点\n") print("二人の点数の平均は",ave,"点\n") print("最高点は",max,"点\n") print("最低点は",min,"点\n")
RubyではJavaと違い、変数の型定義を明示的に行いません。上記のようにそのまま変数に代入しています。
Rubyでは文末に;(セミコロン)は使いません。改行を文の区切りとして捉えます。そのため、インデント(字下げ)を行い、まとまりを強調し見やすくします。
条件分岐にif文を使います。thenを書き忘れないようにしてください。
printメソッドは引数をコンソールに出力するメソッドです。複数の引数を扱う場合は「,」で区切ります。
ファイルを作成したら、画面下部のターミナルで、実行してみましょう。
実行の仕方は「ruby ファイル名.rb」です。
aiueo111:~/workspace $ ruby sample01.rb 田中さんの点数は60点 高橋さんの点数は80点 二人の点数の平均は70点 最高点は80点 最低点は60点
2. 繰り返し
##繰り返し for構文 =begin for 変数 in オブジェクト do 繰り返す処理 end =end sum=0 for i in 1..5 sum=sum+i end print sum,"\n" #繰り返し while構文: =begin while 繰り返し続ける条件 do 繰り返す処理 end =end i=1 while i<4do print(i,"\n") i=i+1 end #繰り返し timesメソッド =begin 繰り返す回数.times do 繰り返す処理 end =end 2.times do print("2回繰り返します。\n") end
aiueo111:~/workspace $ ruby sample02.rb 15 1 2 3 2回繰り返します。 2回繰り返します。
do~endをブロックと呼びます。ブロックの中に繰り返したい処理を書きます。
この他にも繰り返しメソッドがあるので、興味がある方は調べてみてください。
3. メソッド
=begin メソッド構文: def メソッド名(引数1,引数2,・・・・) 実行したい処理 end =end #メソッド定義 #コンソールに引数を出力するメソッド def test(name="Ruby",point=0) print(name,"さんの点数は",point,"点\n") #()省略可 end #メソッド呼び出し。 test() test("田中",60) test("高橋",80) #平均点を求めるメソッド def average(point01=10,point02=0) ave=(point01+point02)/2 return ave #return文は省略可 end #平均点のメソッド呼び出し print("平均点は",average(60,80),"点\n") #最高点を求めるメソッド def max(a,b) #return文は省略している if a>b then max=a else max=b end end #最高点のメソッド呼び出し print("最高点は",max(60,80),"点\n" )
name,point引数が空の状態でhelloメソッドが呼び出された時、メソッド定義部分で記載されている引数がデフォルトの値として代入されます。
メソッドの中でreturn文を用いて返り値を指定できますが、省略することも可能です。省略した場合は、メソッドの中で最後に得られる値が返り値となります。
aiueo111:~/workspace $ ruby sample03.rb Rubyさんの点数は0点 田中さんの点数は60点 高橋さんの点数は80点 平均点は70点 最高点は80点
4. クラス
class EnglishTest #initializeメソッドは初期化のためのメソッド(Javaだとコンストラクタ) def initialize(name="Ruby",point=0) @name=name #インスタンス変数に引数を代入 @point=point end #ゲッター 参照のみ可能 attr_reader :name,:point #セッター 変更のみ可能 #attr_writer :name,:point #アクセスメソッド(参照、変更の両方を可能にする) #attr_accessor :name :point #インスタンスメソッド定義 #コンソールに引数を出力するメソッド def test print(@name,"さんの点数は",@point,"点\n") #()省略可 end end #オブジェクトの生成 ruby=EnglishTest.new tanaka=EnglishTest.new("田中",60) takahashi=EnglishTest.new("高橋",80) #メソッド呼び出し ruby.test tanaka.test takahashi.test #ゲッターにより、nameやpointを参照できるようになる。 p tanaka.name p takahashi.point
クラスを使うことによって初期化メソッドのinitializeメソッドとインスタンス変数が使えるようになりました。
initializeメソッドはオブジェクトが生成される際に呼ばれ、必要な初期化処理はここに記載します。ここでも引数がない状態でオブジェクト生成されるときは、デフォルトの値が呼ばれます。
@で始まる変数はインスタンス変数と呼ばれ、同じインスタンス内であれば、他のメソッドからもその値を参照や変更ができます。
ゲッターにより、他のインスタンスからnameとpointが呼び出せるようになりました。
aiueo111:~/workspace $ ruby sample04.rb Rubyさんの点数は0点 田中さんの点数は60点 高橋さんの点数は80点 "田中" 80
最後に
だいぶ駆け足でRubyを紹介しましたが、いかがでしたでしょうか?わかりづらいところや、もう少し詳しく書いて欲しい所があれば、コメントなどでいただけるとありがたいです。
今後もRubyの続きや新しくRailsの技術ブログも書く予定なので、気になる方はチェックしてみてください。