1
我得到的ClojureCLR REPL编译器例外基本胁迫:ClojureCLR强制错误
=> (class 12)
System.Int64
=> (class 12.34)
System.Double
=> (class (new System.Double 12))
CompilerException System.InvalidOperationException: No constructor in type: Double with 1 arguments
at clojure.lang.CljCompiler.Ast.NewExpr.ComputeCtor() in D:\work\clojure-clr-1.4.1-fix\Clojure\Clojure\CljCompiler\Ast\NewExpr.cs:line 73
at clojure.lang.CljCompiler.Ast.NewExpr..ctor(Type type, List`1 args, IPersistentMap spanMap) in D:\work\clojure-clr-1.4.1-fix\Clojure\Clojure\CljCompiler\Ast\NewExpr.cs:line 49
at clojure.lang.CljCompiler.Ast.NewExpr.Parser.Parse(ParserContext pcon, Object frm) in D:\work\clojure-clr-1.4.1-fix\Clojure\Clojure\CljCompiler\Ast\NewExpr.cs:line 117
at clojure.lang.Compiler.AnalyzeSeq(ParserContext pcon, ISeq form, String name) in D:\work\clojure-clr-1.4.1-fix\Clojure\Clojure\CljCompiler\Compiler.cs:line 1560, compiling: (NO_SOURCE_PATH:60)
很抱歉,如果这是一个newbish问题,但行为不一样Java的互操作!
.NET的语法不同吗?
非常感谢大家的迅速回复。由此我认为,尽可能使用核心Clojure函数进行类型强制更安全。我想这也会让代码更容易在CLR和JVM之间移植? – user2251223 2013-04-07 06:33:35