Clojure在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
抽取序列中某几个字符中第一次出现的位置 发布于:2022-09-03 15:43 hello world 发布于:2021-12-04 16:38 [更多]
显示目录

java接口



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

java接口

正好我们已经知道的,Clojure代码最终在Java虚拟环境上运行。因此,只有Clojure能够利用Java中的所有功能才完全。在本章中,我们来讨论Clojure和Java之间的相关性。

调用Java方法

因为Clojure中的所有字符串都是Java字符串,所以你可以在字符串上调用普通的Java方法。

以下程序中显示了如何完成此操作的示例。

(ns Project
   (:gen-class))
(defn Example []
   (println (.toUpperCase "Hello World")))
(Example)

您可以从代码中看到,如果您只是调用任何字符串方法的点符号,它也将在Clojure工作。

HELLO WORLD

调用带有参数的Java方法

您还可以使用参数调用Java方法。以下程序中显示了如何完成此操作的示例。

(ns Project
   (:gen-class))
(defn Example []
   (println (.indexOf "Hello World","e")))
(Example)

您可以从上面的代码看到,我们将参数“ e”传递给indexOf方法。上述程序产生以下输出。

1

创建Java对象

对象可以在Clojure中通过使用'new'关键字来创建,例如在Java中生成的。

以下程序中显示了如何完成此操作的示例。

(ns Project
   (:gen-class))
(defn Example []
   (def str1 (new String "Hello"))
   (println str1))
(Example)

您可以从上面的代码中看到,我们可以使用'new'关键字从现有的Java类中创建一个新的对象。我们可以在创建对象时传递值,就像我们在Java中一样。前述程序产生以下输出。

Hello

下面是另一个例子,显示了如何创建一个Integer类的对象,并在正常的Clojure命令中使用它们。

(ns Project
   (:gen-class))
(defn Example []
   (def my-int(new Integer 1))
   (println (+ 2 my-int)))
(Example)

上述程序产生以下输出。

3

导入命令

我们还可以使用导入命令将Java库包含在命名空间中,踩可以轻松地访问类和方法。

在示例中,我们使用导入命令从java.util.stack库中引入类。然后我们可以使用堆栈类的push和pop方法。

(ns Project
   (:gen-class))
(import java.util.Stack)
(defn Example []
   (let [stack (Stack.)]
   (.push stack "First Element")
   (.push stack "Second Element")
   (println (first stack))))
(Example)

上述程序产生以下输出。

First Element

运行代码使用java命令

Clojure代码可以使用Java命令运行。下面是如何做到这一点的语法。

java -jar clojure-1.2.0.jar -i main.clj

你必须提到Clojure jar文件,以便所有基于Clojure的类都将在JVM中加载。 'main.clj'文件是需要执行的Clojure代码文件。

Java的内置函数

Clojure可以使用Java的许多内置函数。

数学PI函数 - Clojure可以使用Math方法来获取PI的值。 下面是一个示例代码。

(ns Project
   (:gen-class))
(defn Example []
   (println (. Math PI)))
(Example)

上面的代码产生以下输出。

3.141592653589793

系统属性 - Clojure也可以查询系统属性。 下面是一个示例代码。

(ns Project
   (:gen-class))
(defn Example []
   (println (.. System getProperties (get "java.version"))))
(Example)

根据系统上Java的版本,将显示相应的值。 下面是一个示例输出。

1.8.0_45

由JSRUN为你提供的Clojure在线运行、在线编译工具
        JSRUN提供的Clojure 在线运行,Clojure 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout