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

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

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

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

Q&A

解決済

1回答

870閲覧

引数の違い hogeに代入

dossy

総合スコア109

Ruby

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

1グッド

1クリップ

投稿2019/04/02 12:07

def post_review(a_p) post = {} puts "感想を入力してください:" post[:review] = gets.chomp puts "感想 :\n#{post[:review]}\n#{line}" # 配列オブジェクトに追加 a_p << post return a_p end hoge = [] while true do puts "レビュー数:#{hoge.length}" puts "[0]書く" puts "[1]読む" puts "[2]終了" input = gets.to_i if input == 0 then hoge = post_review(hoge) elsif input == 1 then read_reviews(hoge) elsif input == 2 then end_program else exception end end

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

if input == 0 then post_review(hoge)

この部分で
外の配列hogeに代入するときとしないときの違いを教えてください。

post_review(hoge)
hoge = post_review(hoge)
どちらでも動きます。

post_reviewでa_p << postをしているからhoge = post_review(hoge)
の記述はいらないのかなと思ったりします。

というのであれば、hoge = post_review(hoge)という記述は要らない子なのでしょうか?

DrqYuto👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

post_reviewでa_p << postをしているからhoge = post_review(hoge)

の記述はいらないのかなと思ったりします。

そのとおりです。

ただ、引数を破壊的に変更するのは、動作を理解しづらくなる面があるので、あまりおすすめはしません。post_reviewreturn a_p + [post]のように新しい配列を作るようにしたほうがいいかと思います(その場合は返り値の代入が必要になります)。

投稿2019/04/02 12:11

maisumakun

総合スコア145183

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問