gpt4 book ai didi

ruby - Scala 缺少哪些动态语言(如 Ruby 或 Clojure)的特性?

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:08 26 4
gpt4 key购买 nike

当您选择 Scala(或 F#、Haskell、C#)等静态类型语言而不是 Ruby、Python、Clojure、Groovy(具有宏或运行时元编程功能)等动态类型语言时,您在实践中失去了什么)?请考虑最好的静态类型语言和最好的(在您看来)动态类型的语言,而不是最差的。

答案总结:

恕我直言,Ruby 等动态语言相对于 Scala 等静态类型语言的主要优势是:

  • 快速的编辑-运行周期(JavaRebel 是否缩小了差距?)
  • 目前 Scala/Lift 社区比 Ruby/Rails 或 Python/Django 小得多
  • 可以修改类型定义(尽管动机或需要不是很清楚)

最佳答案

原则上,当不清楚(在静态上下文中)正确的做法是什么时,您将放弃忽略正在使用的类型的能力,仅此而已。

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

在实践中,使用 Scala,您几乎不会放弃任何其他东西,也不会放弃任何我特别关心的东西。您不能注入(inject)新方法,但可以编译和运行新代码。您必须在函数参数中指定类型(以及递归函数的返回类型),如果您自己从不犯类型错误,这会有点烦人。由于它会编译每个命令,因此 Scala REPL 不像例如Python 外壳。而且由于它使用 Java 反射机制,因此您无法像使用例如Python(无论如何都需要构建自己的检查库)。

关于ruby - Scala 缺少哪些动态语言(如 Ruby 或 Clojure)的特性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2566569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com