ここで、オートローディングがトリガーされ、Constantを現在のネストスコープ内に配置できない場合、const_missingから救助することが重要であると理解しています。私はまた、ファイル名が欠落している定数と同じ名前のオートローディングプロセスでおそらく見過ごされたファイルを必要とすることを使命と理解しています。この場合、const_missingの目的を説明できる人はいますか?
しかし、私を混乱させるものがいくつかあります。まず、@looked_for ||= {}
私が間違っていなければ@looked_for || @looked_for = {}
と言っています。私たちが@looked_forがnilであることを考慮して、なぜ彼らはそこに配置することに決めましたか?私たちはそのインスタンス変数を作成しているだけです。空であることを知っているので、なぜ@looked_for = {}
と言うのでしょうか?
また、それはif @looked_for[str_name]
と言いますが、私たちが今作成している場合、@looked_forハッシュが既存のキーを持っている可能性はありますか?それは無しではありませんか?さらに、関数の残りの部分がそのif
ステートメントの下にあるため、@looked_forが空の場合は何も起こりません。
この@looked_for変数が何らかの形で既に存在し、定数名のキーを持っていた場合、@looked_for [str_name]なぜそれを1
に設定していますか?それの目的は何ですか?
[|| =(or-equals)はRubyでどういう意味ですか?](https://stackoverflow.com/questions/995593/what-does-or-equals-mean-in-ruby) – jonrsharpe
私の質問の主な違反は、@looked_for [str_name] = 1を設定する目的は何でしょうか。 – rackymortor
このメソッドが複数回呼び出される可能性があります。私たちは** "notlooked_for is not nill"をまったく知りません。最初の呼び出しを除いて*は*なりません。 – meagar