这里的新手...我可以编写一个程序,在同一个 scala 程序中包含 .NET LINQ 和各种 Java 框架吗?或者当我编译时,当时决定是 .NET 还是 Java 中的一个或另一个
谢谢。
当你编译 scala 时,你可以给它 -target:msil 或 -target:jvm-XX (默认是 java)。这意味着您可以尝试使某些东西可以交叉编译(这将适用于两个目标,但必须为每个目标单独编译)。
尝试使用跨越边界的函数同时托管两个框架虽然在技术上是可行的,但非常困难,并且需要编译器和运行时级别的全面支持。
由于 scala 在一个或另一个运行时上运行,因此这极不可能运行良好,或者任何有能力实现它的人都会打扰。此外,各种 .Net 类型在 jvm 中没有类似物,反之亦然。
在这样的系统中正确有效地维护跨两个运行时的 GC 根将是一个抽象的博士论文的主题,更不用说实现它了。