加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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 / Lift比Ruby / Rails或Python / Django小得多
>可能修改类型定义(尽管动机或需求不太清楚)

解决方法

原则上,您放弃能够忽略您不清楚的类型(在静态上下文中),正确的做法是什么,而这就是它.

由于复杂的类型检查可能相当耗时,您也可能被迫放弃快速在线元编程.

在实践中,与Scala,你放弃了很少的其他 – 而我没有什么特别关心的.你不能注入新的方法,但你可以编译并运行新的代码.您必须在函数参数中指定类型(和带有递归函数的返回类型),如果您自己不再进行类型错误,那么这样做有点烦人.由于它编译每个命令,所以Scala REPL不像例如Python shell.而且,由于它使用Java反射机制,因此您不太可以轻松进行在线检查. Python(无论如何建立自己的检查库).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读