[解決済み] Rubyで、メソッド "foo=() "が定義されているかどうかを確認するにはどうすればよいですか?
2023-06-11 13:41:04
質問
Rubyでは、foo=(bar)というメソッドを定義することができます。
irb(main):001:0> def foo=(bar)
irb(main):002:1> p "foo=#{bar}"
irb(main):003:1> end
=> nil
では、定義されているかどうかを確認したいと思います。
irb(main):004:0> defined?(foo=)
SyntaxError: compile error
(irb):4: syntax error, unexpected ')'
from (irb):4
from :0
ここで使用する適切な構文は何でしょうか? 私は、"foo=" を解析して正しく defined? 演算子に渡すようなエスケープの方法があるに違いないと仮定しています。
どのように解決するのですか?
問題は
foo=
メソッドが割り当ての中で使われるように設計されていることです。あなたが使用できるのは
defined?
を以下のように使用すると、何が起こっているのかがわかります。
defined?(self.foo=())
#=> nil
defined?(self.foo = "bar")
#=> nil
def foo=(bar)
end
defined?(self.foo=())
#=> "assignment"
defined?(self.foo = "bar")
#=> "assignment"
と比べてみてください。
def foo
end
defined?(foo)
#=> "method"
をテストするために
foo=
メソッドが定義されているかどうかを調べるには
respond_to?
を使うべきです。
respond_to?(:foo=)
#=> false
def foo=(bar)
end
respond_to?(:foo=)
#=> true
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] PHPのエラーを表示させるにはどうしたらいいですか?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyで文字列が部分文字列を含むかどうかをチェックする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜsumはinject(:+)よりもずっと速いのですか?
-
[解決済み] Hash each ループでインデックスにアクセスすることは可能ですか?
-
[解決済み] rubyのClassとKlassの違いは何ですか?
-
[解決済み] Ubuntu 14.04にRuby 2.1.4をインストールする方法
-
[解決済み] Rubyで文字列が正規表現にマッチするかどうかをチェックする最も速い方法?
-
[解決済み] OSX 10.9 MaverickにNokogiriをインストールするとエラーになる?
-
[解決済み] Ruby の正規表現で最初にマッチしたものを返す
-
[解決済み] Rubyで1行でメソッドを定義するには?
-
[解決済み] RubyでDateTime.nowをUTCに変換するには?
-
[解決済み] FactoryGirlのbuildメソッドとcreateメソッドの違いは何ですか?