Skip to content

Commit

Permalink
deconstruct_keys での keys についての説明の訳を修正
Browse files Browse the repository at this point in the history
Co-authored-by: shuichi <shuichi.shp.code@gmail.com>

cf. #2773 (comment)
  • Loading branch information
sanfrecce-osaka committed Feb 4, 2023
1 parent 878f744 commit c6bc5e0
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion refm/doc/spec/pattern_matching.rd
Original file line number Diff line number Diff line change
Expand Up @@ -523,7 +523,9 @@ end
#@end

#@# +keys+ are passed to +deconstruct_keys+ to provide a room for optimization in the matched class: if calculating a full hash representation is expensive, one may calculate only the necessary subhash. When the <code>**rest</code> pattern is used, +nil+ is passed as a +keys+ value:
keys はマッチしたクラスの中で最適化の余地を残して deconstruct_keys へと渡されます。もし全てのハッシュの表現の計算に高い負荷がかかる場合、必要なサブハッシュのみ計算されるかもしれません。『**rest』 パターンが使われている場合、keys の値として nil が渡されます。
deconstruct_keys メソッドに引数 keys を渡すのは、マッチを行うクラスの実装側に最適化の余地を残すためです。もし、ハッシュのすべての要素を計算するのが重い処理になる場合には、keys で指定された、マッチに必要になる部分のみを計算するように実装しても良いでしょう。

『**rest』 パターンが使われた場合には、keys の値として nil が渡されます。

#@samplecode
case Point.new(1, -2)
Expand Down

0 comments on commit c6bc5e0

Please sign in to comment.