Avatar
「メソッドを埋めるためにどこかから持ってくる」というのがSwiftのプロトコル周りの挙動のポイントの一つで
12:01 AM
Scalaでいうと Addable の List に対して sum メソッドを定義するみたいな事をやるときに、implicit parameterで その要素の型の型クラスを持ってきますけど
12:02 AM
Swiftのprotocol extensionでwhere Element: AdditiveArithmeticとか書いてる時はコンパイラが静的にそれをやってるんですよね。
12:03 AM
そこで静的に解決されて、実行時に渡されてるモノがprotocol witness tableです。Scalaだとプログラマがそれを半分手動で書いてるわけですね。 (edited)