我正在尝试使用协议来创建一个工程数字类型(“knumber”),这样我就可以说
无论如何,有人可以为此提供一种策略吗?我认为我需要使用协议。我目前有一个
Clojure数字满足哪些协议?我想我需要扩展一些现有的协议/接口来实现这一点。
谢谢
(+ "1k" "2Meg")
,并得到类似于"2.001Meg"
的结果。我应该能够像这样从knumber中获取浮点值:(:val my-knumber)
,但通常打印机应该显示字符串,也可以通过以下方式访问:(:string my-knumber)
。这个数字将支持所有常见的p、n、u、m、k、Meg、G后缀,并在它们之间自动转换,例如(/ "1Meg" "1G") -> "1m")
。我希望能够将其传递给任何期望数字的函数。无论如何,有人可以为此提供一种策略吗?我认为我需要使用协议。我目前有一个
(defrecord knumber [val string])
,但我不确定接下来要做什么。Clojure数字满足哪些协议?我想我需要扩展一些现有的协议/接口来实现这一点。
谢谢