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

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

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

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

Q&A

1回答

142閲覧

コードの流れを教えてください。

wxtu1DNiT78DmhJ

総合スコア5

Ruby

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

1グッド

1クリップ

投稿2020/03/29 07:02

class User def initialize(name) @name = name end def self.create_users(names) names.map do |name| User.new(name) end end def hello "Hello,I am #{@name}" end end names = ['Alice','Bob','Carol'] users = User.create_users(names) users.each do |user| puts user.hello end

このコードの流れを教えていただきたいです。なんとなくわかるのですが、いまいち腑に落ちないです。

DrqYuto👍を押しています

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

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

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

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

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

gentaro

2020/03/29 07:06

どの部分がわからないのか、腑に落ちないのかを質問文に書いてください。
guest

回答1

0

①name変数に文字列の配列代入

ruby

1names = ['Alice','Bob','Carol']

②-1users変数にcreate_usersの返り値代入

ruby

1users = User.create_users(names)

②-2 create_usersメソッド(クラスメソッド)呼び出し
・引数のnames(①)の文字列配列がを配列展開しています。

ruby

1# mapなので返り値はUserインスタンスの配列が返ります。 2def self.create_users(names) 3 names.map do |name| 4 User.new(name) 5 end 6end

②-3 配列要素の文字列を引数に、Userインスタンスの作成

ruby

1# User.new(name)したときにinitializeメソッドが呼び出される 2# このときに、引数のnameが@nameにセットされる。インスタンスは@nameを保持する 3def initialize(name) 4 @name = name 5end

現状で、以下のような動きをすると思います。

ruby

1# 出力結果 2 3 p user.name 4 5 ・name == 'Alice' 6 > 'Alice' 7 ・name == 'Bob' 8 > 'Bob' 9 ・name == 'Carol' 10 > 'Carol'

③ ユーザーインスタンスのhelloメソッド(インスタンスメソッド)を呼び出します。

ruby

1users.each do |user| 2 puts user.hello 3end

ruby

1# 出力結果 2 3> Hello,I am Alice 4> Hello,I am Bob 5> Hello,I am Carol

投稿2020/03/29 14:50

twinsdevelopper

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問