とてもレベルの低い質問ですみません。メソッド定義はシンボルなのでしょうか?
def palindrome(s = '') if s == s.reverse puts "回文" else puts "ではない" end end
rails console で上記のようにメソッド定義を入力すると
=> :palindrome
と帰ってきます(「:」が付いているのでシンボル?)。これに対し、
# 想定内 >> :palindrome => :palindrome # 想定内 >> palindrome "しんぶんし" 回文 => nil # 想定外! >> :palindrome "しんぶんし" SyntaxError: (irb):21: syntax error, unexpected tSTRING_BEG, expecting end-of-input :palindrome "しんぶんし"
最後の「:palindrome "しんぶんし" 」ではエラーになってしまいます。
質問ですが、
- メソッド定義で「=> :palindrome」と帰ってきますがこれは「:palindrome」というシンボルに対してメソッド定義「def ... end」が割り当てられたということを表していますか?
- そうであれば、なぜ「:palindrome "しんぶんし"」はエラーになるのでしょうか?
- またそうでなければ、なぜメソッド定義で「=> :palindrome」が帰って来るのでしょうか? 「=> palindrome」では無いでしょうか?
理由も含め教えて頂ければ幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/29 01:40
2017/08/29 01:42
2017/08/29 01:52
2017/08/29 01:54
2017/08/29 01:57
2017/08/29 02:08