String 是否可以将经过的时间函数强制转换为整数?

String 是否可以将经过的时间函数强制转换为整数?,string,time,casting,clojure,integer,String,Time,Casting,Clojure,Integer,我有以下功能: (def elapsedtime (with-out-str (time (run-my-function)))) 我想知道是否可以只存储时间的整数值,因为我现在只能存储一个字符串 有什么建议吗? 非常感谢 更新 So I did use this: (defmacro nsecs [expr] `(let [start# (. System (nanoTime))] ~expr (- (. System (nanoTime)) start#))

我有以下功能:

(def elapsedtime (with-out-str (time (run-my-function))))
我想知道是否可以只存储时间的整数值,因为我现在只能存储一个字符串

有什么建议吗? 非常感谢

更新

So I did use this:
  (defmacro nsecs
  [expr]
  `(let [start# (. System (nanoTime))]
     ~expr
     (- (. System (nanoTime)) start#)))
然后修改了这个:

(def elapsedtime (nsecs (run-my-function argument1 argument2)))
但不起作用,我做错了什么


“线程异常”AWT-EngestRay-0“JavaLang.ILLCALL AgurMutExpRebug:错误的ARG数(1)传递到:$FN-$NSECS“

< P>”,而不是从字符串中提取这个值,让我们看一下

的源代码。 将其用作新宏的基础,该宏返回计算给定表达式所花费的纳秒数

(defmacro nsecs
  [expr]
  `(let [start# (. System (nanoTime))]
     ~expr
     (- (. System (nanoTime)) start#)))

DefMacro解决方案对我不起作用,因此我使用了此过滤解决方案:

(filter #(#{\0,\1,\2,\3,\4,\5,\6,\7,\8,\9,\.} %) my-double-number)

返回的值正是我想要的。无论如何,谢谢你的建议和时间。Chers

您好,谢谢您的建议,但我现在遇到了这个错误:“线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中的异常:传递给main$fn--105$nsecs的参数数目错误”您能看一下问题更新吗?无论如何,非常感谢。我看到你对NSEC的定义与简的不同。也许你应该试试用简的。我也试过他的版本,但没有改变。问题在于参数的数量。即使我这样做了”(def elapsedtime(nsecs(+1))),它也不起作用……奇怪的是,您在什么环境下运行此功能?您是否可以从命令行启动REPL,而不使用Clojure代码的其余部分,并检查宏是否存在相同的问题?
(filter #(#{\0,\1,\2,\3,\4,\5,\6,\7,\8,\9,\.} %) my-double-number)