8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rubyの変数とメソッド

Last updated at Posted at 2020-12-09

目標

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
8
0
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
8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?