2

我正在寻找一种满足以下条件的脚本语言:

  • 有据可查
  • 用Java实现
  • 了解数据类型(可以处理长整数、字符串等)
  • 完全可扩展

有什么建议么?目前,我正在使用 Javascript,但它设置数字的双精度数对于我正在做的数据工作来说还不够大。

谢谢!

4

6 回答 6

4

时髦的

特别是,Groovy可以用作脚本语言,但不是必须的,它构建在 Java 之上。它不是其他语言的 Java 端口,这意味着它与 Java 的集成比 JRuby/Jython 更紧密,尽管自从我上次查看它们以来这可能已经改变。

至于 Groovy 的文档,您可能想购买Groovy in Action (plug plug ;)

于 2009-06-09T19:49:59.173 回答
2

Python 和 Ruby 有 Java 实现(查找 Jython 和 JRuby)。

于 2009-06-09T19:47:47.853 回答
0

LuaJava可能是它。所有数字在内部都表示为 lua 中的双精度数。

于 2009-06-09T19:47:22.407 回答
0

我不确定您所说的“了解数据类型”是什么意思。如果您的意思是它具有字符串、数字等,那么 JavaScript、Groovy、Python 和 Ruby 是与 Java 很好地集成的众多语言中的一些。如果您正在寻找一种静态类型的语言,我不确定。

关于 JavaScript 中双精度数不够大的问题,您可以从 JavaScript 代码中分配 Java BigDecimal 对象(或 BigInteger 对象)。因此,数字表示对您来说应该不是问题。

于 2009-06-09T19:54:55.577 回答
0

你是什​​么意思“它设置数字的两倍对于我正在做的数据工作来说不够大。” 在大多数语言 AFAIK 中,双打的大小相同。

您需要多少精度?如果您需要超过 16 位以上的精度,也许 BigDecimal 适合您。

于 2009-06-09T20:04:11.610 回答
0

Clojure 或 Groovy 将是我的建议。

Jon 的回答已经有一些关于 Groovy 的详细信息,所以这里有更多关于 Clojure 的信息:

  • 它是一个 Lisp,因此具有高度可扩展性,非常适合构建 DSL
  • 它是用纯 Java 编写的,因此您可以轻松地嵌入到 Java 应用程序中
  • 它非常动态,非常适合 REPL 的交互式脚本

特别是 Java 互操作非常简单:Clojure 对象Java 对象,反之亦然,您可以直接调用方法:

;; create a string
(def s "Hello World")

;; inspect its type
(class s)
=> java.lang.String

;; call a method 
(.length s)
=> 11

;; count the characters (Clojure can treat Strings as a sequence of characters)
(frequencies s)
=> {\H 1, \e 1, \l 3, \o 2, \space 1, \W 1, \r 1, \d 1}
于 2012-02-15T14:19:14.620 回答