如果我在java中有一个String数组
例
public static void main (String [] args)
{
int x = Integer.parseInt(args[2]);
}
Run Code Online (Sandbox Code Playgroud)
在clojure中这个代码的等价物是什么?
Clojure可以直接调用Java方法,所以假设你的函数传递了一个String数组,你可以这样做:
(defn my-parse [args]
(Integer/parseInt (aget args 2)))
Run Code Online (Sandbox Code Playgroud)
注意事项:
aget 是一个从Java数组中获取元素的函数.(ClassName/methodName ...)用于在Clojure中调用Java静态方法值得注意的是,Clojure实际上可以解构 Java数组.所以你也可以这样做:
(defn my-parse [[s0 s1 s2 & more-strings]]
(Integer/parseInt s2))
Run Code Online (Sandbox Code Playgroud)
在此代码中,s0获取第一个数组元素的值,s1第二个,s2第三个,并且more-strings是任何剩余参数的序列