Scala中缺少动态语言(如Ruby或Clojure)的功能是什么?
发布时间:2020-12-16 09:16:54 所属栏目:安全 来源:网络整理
导读:当您选择静态类型的语言(如 Scala(或F#,Haskell,C#))而不是像 Ruby,Python,Clojure,Groovy(具有宏或运行时元编程功能)的动态类型语言时,您在实践中会失去什么?请考虑最好的静态类型语言和最好的(在您看来)动态类型的语言,而不是最坏的语言. 答案总结: 诸如
当您选择静态类型的语言(如
Scala(或F#,Haskell,C#))而不是像
Ruby,Python,Clojure,Groovy(具有宏或运行时元编程功能)的动态类型语言时,您在实践中会失去什么?请考虑最好的静态类型语言和最好的(在您看来)动态类型的语言,而不是最坏的语言.
答案总结: 诸如Ruby之类的动态语言的主要优点就是像Scala IMHO这样的静态类型语言是: >快速编辑运行循环(JavaRebel是否缩小了差距?) 解决方法
原则上,您放弃能够忽略您不清楚的类型(在静态上下文中),正确的做法是什么,而这就是它.
由于复杂的类型检查可能相当耗时,您也可能被迫放弃快速在线元编程. 在实践中,与Scala,你放弃了很少的其他 – 而我没有什么特别关心的.你不能注入新的方法,但你可以编译并运行新的代码.您必须在函数参数中指定类型(和带有递归函数的返回类型),如果您自己不再进行类型错误,那么这样做有点烦人.由于它编译每个命令,所以Scala REPL不像例如Python shell.而且,由于它使用Java反射机制,因此您不太可以轻松进行在线检查. Python(无论如何建立自己的检查库). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |