目標
Rubyのvariable(変数),methodについて理解する.TDD(テスト駆動開発)の進め方を学ぶ.
解説
変数の取り扱いについて
まず、受け取った引数ARGV[0]をnameという変数(variable)に代入してそれを打ち出すコード,name_variable.rbを作成します.以下はコードになっています.
name = ARGV[0]
puts "Hello #{name}."
Rubyには型宣言をせずに書くことが出来ます.Rubyの変数は型を持たないらしいです.このコードを動かしてみると…
>ruby name_variable.rb Taro
Hello Taro.
無事,出力されました.
Methodについて
関数などのまとまりにするには定義(definition)が必要です.先ほどのコードをmethodにしてみましょう.
def hello name
puts "Hello #{name}"
end
name = ARGV[0]
hello(name)
Rubyでは字下げはあまり気にしないそうですが,2文字分字下げするのが主流だそうです.同様にターミナルで動かしてみます.
>ruby hello_method.rb Taro
Hello Taro
無事出力されました.
TDD(テスト駆動開発)
TDDを用いた解法
先ほどのhello_method.rbをTDDに基づいて作成していきます.
hello(name)
まずはこれで動かしてみます.
> ruby hello_method.rb Taro
hello_method.rb:1:in `<main>': undefined local variable or method `name' for main:Object (NameError)
nameという変数が定義されていないというエラーが出てきます.なのでnameにARGV[0]を代入します.
name = ARGV[0]
hello(name)
> ruby hello_method.rb Rudy
hello_method.rb:2:in `<main>': undefined method `hello' for main:Object (NoMethodError)
でhelloっていうmethodが定義されていないというエラーが出てきます.なので
def hello name
puts "Hello #{name}"
end
name = ARGV[0]
hello(name)
これを動かしてみると
>ruby hello_method.rb Taro
Hello Taro
無事出力されました.
参考にしたサイト
この記事を書くために以下のサイトを参考にしました.チャート式ruby-II(variable and method)
- source ~/grad_members_20f/members/Takahiro-Nishikawa/ruby_variable_method.org