局所変数 (local variable)

次のプログラムには2つの変数があります。

def double_this num
  num_times2 = num *2
  puts num.to_s + 'の2倍は ' +num_times2.to_s
end

double_this 44

実行結果

moomin:programmingRuby tomomi$ ruby method.rb
442倍は 88

うー教科書に掲載されている例文を翻訳できずしっくり理解できない。

  • 1行目  "num" (number)が突然登場
    • なんだこれ。目的はなに?
  • 2行目 double_thisを "num_times2 = num *2"(=num×2)と定義した。ここオk
  • 3行目 「num[文字列]の2倍は num_times2 (num×2)」と出力するように指定。ここもおk
  • end
  • 6行目 double_this 44
    • double_this =44と書かなくてよいのか
      • double_this=44と書いたら実行されなかった。アウト
    • 最終行に書く。この感覚むつかしい 自分で書いたらうっかり3行目あたりに書いてしまいそう

だいじ

>1行目  "num" (number)が突然登場
引数ですよー

> double_this =44と書かなくてよいのか
メソッド呼び出しなので 44 を num に入れて渡す、という事です

「次のプログラムには2つの変数があります」と書かれていますが、次の「def double_this」は変数を定義しているのではありません。一つ前の節と同じくメソッドなのです。
「2つの変数」とは、メソッドの引数のnumと、メソッドの中に現れるnum_times2の2つのことです。引数以外にもメソッド内で新たに変数を定義し使うことができる、という例なのです。