首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure deftype:如何约束字段类型?

Clojure deftype:如何约束字段类型?
EN

Stack Overflow用户
提问于 2012-08-25 22:27:56
回答 2查看 776关注 0票数 10

我正在尝试编写一个Clojure库,它可以在用户不知道它是用Clojure编写的情况下从Java中使用。为此,我需要我的字段具有适当的类型:

我喜欢我可以这样做:

代码语言:javascript
复制
(deftype Point [^double x ^double y])

它为x/y生成一个具有适当类型的类。然而,这似乎只适用于原语,而不适用于类:

代码语言:javascript
复制
(deftype Foo [^String bar])

生成:

代码语言:javascript
复制
public final Object bar;

我希望看到的是:

代码语言:javascript
复制
public final String bar;

有没有办法约束字段类型?除了deftype/defrecord之外,还有其他选择吗

EN

回答 2

Stack Overflow用户

发布于 2012-08-25 23:40:06

来自deftypedefrecord上的http://clojure.org/datatypes

字段可以有类型提示,也可以是基元字段

请注意,当前是非基元类型的类型提示将不会用于约束字段类型或构造函数arg,但将用于优化其在类方法中的使用

计划约束字段类型和构造函数arg

(我的重点)

票数 12
EN

Stack Overflow用户

发布于 2012-08-25 22:42:41

也许可以尝试这样做:(deftype Point [#^Integer x #^Integer y])

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12122831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档