目的
- インスタンス変数を出力する方法を知る。
書き方の例
- クラス
A
にはインスタンス変数b
とc
が定義されるものとする。 - インスタンス変数
c
の値を順に出力したい。 - インスタンス
1
と2
の2個作成するものとする。 - クラス
A
から生成したインスタンスのインスタンス変数b
とc
には任意の値が入っているものとする。 - 下記に処理を記載する。
# クラスAを定義
class A
# 変数string_1にインスタンス1の内容を格納
string_1 = A.new(b: "インスタンス変数bに格納される値", c: "インスタンス変数cに格納される値")
# 変数string_2にインスタンス2の内容を格納
string_2 = B.new(b: "インスタンス変数bに格納される値", c: "インスタンス変数cに格納される値")
# 変数stringsに変数string_1とstring_2の内容を配列として格納
strings = [string_1, string_2]
# 変数stringsに配列状に格納された内容を一つづつ変数stringに格納
strings.each do |string|
# 変数stringに格納された内容のインスタンス変数cのみを出力
puts string.c
# each文を閉じる
end
# クラス定義を閉じる
end
より具体的な例
- クラス
Menu
にはインスタンス変数content
とprice
が定義されるものとする。 - インスタンス変数
content
の値を順に出力したい。 - インスタンス
1
と2
の2個作成するものとする。 - クラス
Menu
から生成したインスタンス1
のインスタンス変数content
には、文字列「お肉100g」が格納され、インスタンス変数price
には文字列「100円」を格納する。 - クラス
Menu
から生成したインスタンス2
のインスタンス変数content
には、文字列「お魚1尾」が格納され、インスタンス変数price
には文字列「150円」を格納する。 - 下記に処理を記載する。
# クラスMenuを定義
class Menu
# 変数menu_1にインスタンス1の内容を格納
menu_1 = Menu.new(content: "お肉100g", price: "100円")
# 変数menu_2にインスタンス2の内容を格納
menu_2 = Menu.new(content: "お魚一尾", price: "150円")
# 変数menusに変数menu_1とmenu_2の内容を配列として格納
menus = [menu_1, menu_2]
# 変数menusに配列状に格納された内容を一つづつ変数menuに格納
menus.each do |menu|
# 変数menuに格納された内容のインスタンス変数cのみを出力
puts menu.content
# each文を閉じる
end
# クラス定義を閉じる
end
- 下記に前述の処理のコメント無しバージョンを記載する。
class Menu
menu_1 = Menu.new(content: "お肉100g", price: "100円")
menu_2 = Menu.new(content: "お魚一尾", price: "150円")
menus = [menu_1, menu_2]
menus.each do |menu|
puts menu.content
end
end