LoginSignup
0
1

More than 5 years have passed since last update.

Rubyをはじめる

Last updated at Posted at 2019-05-04

はじめに

Rubyの勉強をしてみようとおもい、自分の勉強と合わせてまとめてみました。
公式の 20分ではじめるRuby に沿っいます。

ターミナルを起動してirbを立ち上げる

Rubyの処理系には、入力したRubyの文を実行して結果を出力するプログラムが付属しています。
このように対話的にプログラムを実行するプログラムのことをインタプリタと言います。RubyにはIRB(IRBはInteractive Rubyの略です)が付属しているので、それを使用して実行していきます。

$ irb
irb(main):001:0> 

Hello Worldを実行する

irb(main):001:0> "Hello World"
=> "Hello World"

計算をしてみる

irb(main):002:0> 5+3
=> 8
irb(main):003:0> 3*2
=> 6
irb(main):004:0> 3**2
=> 9
irb(main):005:0> Math.sqrt(9)
=> 3.0

メソッドを利用する

何度も利用する処理はメソッドとして定義して、再利用できるようにします。

ここでは、Hello World! を出力するメソッド say_hello について
まず、メソッドを定義するには def [メソッド名]で定義を開始します。

irb(main):006:0> def say_hello

次に処理を記載していきます。ここでは Hello World! を出力する処理を記載します。

irb(main):007:1> puts "Hello World!"

最後に、end でメソッドの定義を終了します。

irb(main):008:1> end
=> :hi

以上で、メソッドの定義が完了となります。

メソッドの呼び出し

定義したメソッドを利用すには、以下のようにメソッド名を指定することで呼び出すことができます。

irb(main):009:0> hi
Hello World!
=> nil
irb(main):010:0> hi()
Hello World!
=> nil

メソッドにパラメータを渡す

メソッドにパラメータを渡す場合には以下のように定義する。

irb(main):010:0> def hi(name = "World")
irb(main):011:1> puts "Hello #{name}!"
irb(main):012:1> end
=> :hi

nameがパラメータ名となります。
name = "World" は、メソッドの呼び出し時にパラメータを指定しなかった場合の、
デフォルト値として "World"が指定されています。
メソッド実行時にパラメータを指定されなければデフォルト値が使用されます。
次に処理部分で puts "Hello #{name}!" と定義されていますが、
#{name}は変数を文字列に埋め込む方法になります。
呼び出す時は、パラメータを指定して呼び出す。

irb(main):013:0> hi "chris"
Hello chris!
=> nil
irb(main):014:0> hi("chris")
Hello chris!
=> nil
irb(main):018:0> hi
Hello World!
=> nil

クラスの定義

クラスを定義する時には、以下のように記載します。

irb(main):013:0> class Greeter
irb(main):014:1>  def initialize(name = "World")
irb(main):011:2>    @name = name
irb(main):012:2>  end
irb(main):013:1>  def say_hi
irb(main):014:2>    puts "Hi #{@name}!"
irb(main):015:2>  end
irb(main):016:1>  def say_bye
irb(main):017:2>    puts "Bye #{@name}, come back soon."
irb(main):018:2>  end
irb(main):019:1> end
=> :say_bye

定義したクラスからオブジェクトを作成し使用するには以下のようにします。

irb(main):030:0> greeter = Greeter.new("Pat")
=> #<Greeter:0x00007fd15d9029d8 @name="Pat">
irb(main):031:0> greeter.say_hi
Hi Pat!
=> nil
irb(main):032:0> greeter.say_bye
Bye Pat, come back soon.
=> nil

ファイルに書いて実行してみる

クラス定義で書いたものをそのまま sample.rb ファイルへ保存します。

#!/usr/bin/env ruby

class Greeter
  def initialize(name = "World")
    @name = name
  end
  def say_hi
    puts "Hi #{@name}!"
  end
  def say_bye
    puts "Bye #{@name}, come back soon."
  end
end

if __FILE__ == $0
  greeter = Greeter.new("Pat")
  greeter.say_hi
  greeter.say_bye
end

実行するときは以下のようにコマンドを実行します。

$ ruby sample.rb
Hi Pat!
Bye Pat, come back soon.
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1