我听说Dynamic在某种程度上可以在Scala中进行动态类型化.但我无法想象这可能是什么样子或它是如何工作的.
我发现一个人可以继承特质 Dynamic
class DynImpl extends Dynamic
Run Code Online (Sandbox Code Playgroud)
该API称,可以使用这样的:
foo.method("blah")~~> foo.applyDynamic("method")("blah")
但是当我尝试它时它不起作用:
scala> (new DynImpl).method("blah")
<console>:17: error: value applyDynamic is not a member of DynImpl
error after rewriting to new DynImpl().<applyDynamic: error>("method")
possible cause: maybe a wrong Dynamic method signature?
(new DynImpl).method("blah")
^
Run Code Online (Sandbox Code Playgroud)
这是完全合乎逻辑的,因为在查看来源之后,事实证明这个特征是完全空的.没有applyDynamic定义方法,我无法想象如何自己实现它.
有人能告诉我我需要做些什么才能让它发挥作用吗?
除了在JVM上与动态语言集成之外,还有像Scala这样的静态类型语言中Dynamic类型的其他强大用途是什么?