きっかけ Swiftでprotocolの実装を複数持てるのは便利そうだなぁと思ったことある。(foo as A).call だとA#call で、(foo as B).callだとB#callが呼べる的な #fukabori_rubykaigi_2022— 神速 (@sinsoku_listy) 2022年10月5日 よく考えたら as メソッドを定義するだけで実現できそうな気がしたので、実装してみた。 Swiftの話 Swiftを勉強してた頃に、プロトコル拡張で実装したメソッドをキャストした型によって呼び出し分けるのを試したことがある。 sinsoku.hatenablog.com 検証コード module As class Proxy def initialize(this, mod) @this = this @mod = mod end def method_missing(nam