Actions
Feature #14142
closedAdd Method#===
Status:
Closed
Assignee:
-
Target version:
-
Description
概要¶
Ruby の Method
クラスに対する提案になります。
初めてこちらを利用するので内容や書き方などに対する問題があれば教えていただけると助かります。
提案¶
Method#call
と同等の Method#===
を定義する。
理由¶
Proc
では Proc#===
が Proc#call
の同等のメソッドとして定義されています。
Method
が Proc
のように振る舞うことを期待するのであれば、Proc#===
と同等の Method#===
が定義されている方がよいのではないでしょうか。
ユースケース¶
以下のようにして Proc
と同様に when
で使用する事が出来るようになります。
# when で使用する
def check value
case value
when 0.method(:<)
"plus"
when 0.method(:>)
"minus"
when 0.method(:==)
"zero"
end
end
p check 3 # => "plus"
p check -6 # => "minus"
p check 0 # => "zero"
問題点¶
Method#===
が Object#===
を呼び出すことを期待しているようなコードであれば意図しない動作になる可能性があります。
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0