You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Clojure函数名首尾为何带点?解析Java互操作代码中的点语法疑问

为什么部分Clojure函数的名称开头或末尾带有圆点?

这其实是Clojure为Java互操作量身设计的语法糖,咱们拆开你例子里的两个点来解释:

1. java.text.SimpleDateFormat. 末尾的圆点

这个点是Clojure里调用Java类构造方法的简写,用来替代Java里的new关键字。你写的:

(java.text.SimpleDateFormat. "yyyy-MM-dd")

完全等价于:

(new java.text.SimpleDateFormat "yyyy-MM-dd")

末尾加个点,就是告诉Clojure:“我要创建这个Java类的实例,后面跟着构造参数”,写法更贴合Clojure的函数式风格,不用额外的new关键字。

2. .parse 开头的圆点

这个点是用来标记调用Java对象的实例方法。Clojure里调用Java实例方法的标准格式是:

(.实例方法名 Java对象 参数...)

你例子里的:

(.parse (java.text.SimpleDateFormat. "yyyy-MM-dd") date)

意思就是:先创建一个SimpleDateFormat实例,然后调用这个实例的parse方法,把date作为参数传进去。开头的点是Clojure用来区分“Java实例方法”和普通Clojure函数的标识——毕竟Clojure自己的函数调用是不用加这个点的。

简单来说,这两个圆点都是为了让Clojure和Java的交互更顺畅、写法更简洁,不用在Lisp风格的代码里硬塞Java的语法元素~

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:04:29