[解決済み] ルビーフリーズ方式
2022-03-06 06:45:57
質問
def track_for stat
# This is a hash with 2 elements of proc
{
symbol: -> { send(stat) },
array: -> { send(stat[0], stat[1]) }
}.freeze[stat.class.name.underscore.to_sym].call
end
freeze[stat.class.name.underscore.to_sym].call , 私はこのコードについて全く知りません。の中のコードの機能は何ですか?
[]
また、なぜ
call
メソッドを使用することはできますか?どなたか教えてください。非常に感謝しています。
解決方法は?
-
freeze
- Hashの改変を防止する(凍結したオブジェクトを返す) -
[]
- ハッシュから値にアクセスする -
stat.class.name.underscore.to_sym
- これは、与えられたオブジェクトのクラス名の小文字とスネークケースのバージョンを返すと仮定しています (underscore
は標準ライブラリにないので、完全にはわからない) -
call
に関連するラムダを呼び出します。stat.class.name.underscore.to_sym
キーになります。
例えば
['foo', 'bar']
を引数として
track_for
を呼び出すと
send(stat[0], stat[1])
ラムダを使用します。
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyのclass << selfイディオム
-
[解決済み] RubyのHashを数値でソートする方法は?
最新
-
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で新しい文字列を作成せずに文字列をトリミングする標準的な方法は何ですか?
-
[解決済み】ActionController::UnknownFormat
-
[解決済み】未定義のメソッド(NoMethodError)ruby
-
[解決済み] Rubyのローカル変数が未定義である
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] Ruby on railsで改行せずにコンソールに "puts "を使用するにはどうすればよいですか?
-
[解決済み] Rubyでランダムな文字列を生成する方法
-
[解決済み] レイルズ・ジェネレート」を逆手に取る方法
-
[解決済み] Rubyで2次元配列の作成と反復処理
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法