[解決済み] Ruby send と __send__ の比較
2022-04-22 18:03:56
質問
のコンセプトは理解しています。
some_instance.send
が、なぜこれを両方の方法で呼べるのか、その理由を考えています。Rubyの公案では、同じことをするためにたくさんの異なる方法を提供する以上の理由があることを暗示しているのです。以下は2つの使用例です。
class Foo
def bar?
true
end
end
foo = Foo.new
foo.send(:bar?)
foo.__send__(:bar?)
どなたかお分かりになる方はいらっしゃいますか?
解決方法は?
いくつかのクラス(例えば標準ライブラリのソケットクラス)は、独自の
send
とは無関係のメソッドです。
Object#send
. したがって、任意のクラスのオブジェクトを操作したい場合は
__send__
を使えば、安全面でも安心です。
さて、ここで疑問が残るのは、なぜ
send
でなく、単に
__send__
. もし
__send__
名前
send
は、他のクラスが混乱することなく使用することができました。その理由は
send
という名前が先に存在し、後になってから
send
は他の文脈でも有用に使えるかもしれないので
__send__
が追加されました(これは
id
と
object_id
ちなみに)。
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyのclass << selfイディオム
-
[解決済み] イコール、エクル、==、==の違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】rubyの1e18という数字は何を意味するのか?
-
[解決済み] Rubyのメソッド'to_sym'は何をするのですか?
-
[解決済み] ルビーオールウェイズ ラウンドアップ
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] Ruby on railsで改行せずにコンソールに "puts "を使用するにはどうすればよいですか?
-
[解決済み] 配列に何かを追加しようとしたときに、nil から整数への暗黙の変換が行われない。
-
[解決済み] Rubyでリフレクション?
-
[解決済み] Railsアプリでhttpartyを使用して基本認証を使用するには?
-
[解決済み] 変数が整数であるかどうかのチェック
-
[解決済み] JanusのセットアップにVIMプラグインを追加する