2022/01/29 今回の気になった bugs.ruby のチケット
今週はパターンマッチでインスタンス変数で値を束縛できるようにする話です。
[Feature #18408] Allow pattern match to set instance variables
# これはエラーになる case {name: "John", age: 42} in name: /jo/ => @name, age: @age end puts [@name, @age] #=> ["John", 42]
# 右代入ではパターンマッチを利用しているので以下のコードはエラーになってしまう 42 => @value
- 議論の論点としては『スレッドの対応』と『マッチしなかった場合にインスタンス変数の扱いをどうするのか』ってところですかね?
- 右代入でのインスタンス変数は許容するけど、パターンマッチ自体では許容しない、みたいな話もでてる
# acceptable 42 => @v # not acceptable case 42 in @v if expr end
- 現状も議論は進んでいるみたいだけどまた結論はでていなさそう
- パターンマッチで束縛する変数がどういう挙動になるのかの議論をしているみたい?
- https://bugs.ruby-lang.org/issues/18408#note-18