質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

1回答

472閲覧

[Ruby]コードの読み解き(インスタンス変数・setUpメソッド)

yasu_2244

総合スコア23

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2020/08/17 14:05

前提・実現したいこと

「作りながら学ぶRuby入門 第2版」でRubyの勉強をしています。
そこで、以下のコードに対して理解ができませんでした。

  1. StudentBookクラスのinitializeメソッド内の「 @students = {} 」の部分。
  2. StudentBookクラスのsetUpStudentsメソッドの働き。

初質問で至らない所があると思いますが、よろしくお願いします。

該当のソースコード

Ruby

1ソースコード #-*- coding: utf-8 -*- 2 class Student 3 def initialize( name, age ) 4 @name = name 5 @age = age 6 end 7 8 def to_s 9 "#{@name}, #{@age}" 10 end 11end 12 13# StudentBookのアプリケーションのインスタンスを作る 14class StudentBook 15 def initialize 16 @students = {} 17 end 18 19# ハッシュにStudentクラスのインスタンスを複数作成する 20 def setUpStudents 21 @students = { 22 shin: Student.new( "Shin Kuboaki", 45 ), 23 shinichirou: Student.new( "Shinichirou Ooba", 35 ), 24 shingo: Student.new( "Shingo Katori", 30 ), 25 } 26 end 27 28# すべてのインスタンスの名前と年齢を表示する 29# 処理を手続にする 30 def printStudents 31 @students.each { |key, value| 32 puts "#{key} #{value.to_s}" 33 } 34 end 35 36 def listAllStudents 37 setUpStudents 38 printStudents 39 end 40end 41 42student_book = StudentBook.new 43 44student_book.listAllStudents

試したこと

1つめについては、インスタンス変数に空のハッシュ??と思いinitializeメソッドや、インスタンス変数を復習・検索して調べてみましたがどのように理解すればいいのか分かりませんでした。
2つめについても、setupメソッドで調べましたが該当する記事が見当たりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これは元のコード自体が「コードの見本」のようなもので実用的でないために意味不明となっている部分があります。

インスタンス変数に空のハッシュ??

そのとおりです。ただし、(printStudentsを直接呼ぶような掟破りの使い方をしない限り)空のハッシュのままで参照する機会がないので、代入したことが役に立つ場面はありません。

2つめについても、setupメソッドで調べましたが該当する記事が見当たりませんでした。

ただの名前です。文法的な意味はありません。

投稿2020/08/17 14:14

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/08/17 14:15

なお、Rubyのメソッドはmethod_nameのように小文字とアンダーバーで名付けるのが主流です。「printStudents」のような大文字区切りは(文法的には可能ですが)あまり行われません。
yasu_2244

2020/08/18 07:43

迅速な返答ありがとうございました。 おかげさまで、2つの疑問が解消できました! メソッドの書き方についてもアドバイス感謝です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問