前提・実現したいこと
Ruby初級レベルの者です。
プロを目指す人のためのRuby入門(俗に言うチェリー本)において、表題の通り疑問が生じました。
以下のコード#1,#2で、newメソッドの引数がシンボルになっているのはどういうことか理解したいです。
該当のソースコード
gatetest
1#改札機オブジェクトの作成 2class GateTest < Minitest::Test 3 def test_gate 4 umeda = Gate.new(:umeda) #1 5 juso = Gate.new(:juso) #2 6 #省略 7 end 8end
gate
1#改札機オブジェクトの作成 2class Gate 3 def initialize(name) #3 4 @name=name 5 end 6 #省略 7end
試したこと
newメソッドを呼び出すとそのクラスのinitializeメソッドが呼ばれるのは把握してますが、
上記コードの#3では引数はシンボルではないですよね。デフォルト値も設定されていません。
そこにあえてなぜシンボルの引数を渡すのでしょうか。
チェリー本作者のQiita記事「Rubyのキーワード引数はシンボルっぽく定義するけど、シンボルそのものではない、という話」
https://qiita.com/jnchito/items/74e0930c54df90f9704c
のページ下部2020/5/7追記分で、メソッド呼び出し側はシンボルだと明記されていますが、
これは同じように、newメソッドにシンボルが渡されているという認識でいいのでしょうか?
素朴な質問ですがどなたかご回答いただければと思います。
補足情報(FW/ツールのバージョンなど)
該当書籍 Ruby 2.4
私 Ruby 2.6.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/17 04:29
2020/07/17 04:52 編集
2020/07/17 06:36