Kotlin JVM 和 Kotlin Native 有什么区别?
What's the difference between Kotlin JVM and Kotlin Native?
所以我知道 Kotlin Native 显然是 Native 而 Kotlin JVM 不是,而是 Kotlin JVM 和 Kotlin Native 之间的代码:
1.不同的编译器和不同的代码
2.不同的编译器和相似的代码
3.不同的编译器和相同的代码
4. 以上None(请说明)
Kotlin/JVM和Kotlin/Native编译器共享front-end(执行代码解析、名称解析、类型推断等的部分),但编译器back-ends将内部程序表示转换为目标代码(分别是 JVM 字节码和 LLVM 位码)的方法不同。
两个编译器接受的Kotlin语言是一样的,但是一些特性和检查是platform-specific。此外,Kotlin/JVM 和 Kotlin/Native 的标准库完全不同,请在此处查看每个平台上可用的 API:Kotlin Standard Library.
另一个很大的区别是内存模型:Kotlin/JVM 使用 Java 内存模型,而 Kotlin/Native 提供 its own concurrency and memory model。
另外,在Kotlin/JVM和Kotlin/Native项目中可以使用的依赖是不同的。除了使用相同的 Kotlin 目标构建的项目:
Kotlin/JVM 也可以使用为 JVM 构建的任何库(用 Java、Scala 等编写)
Kotlin/Native 还可以使用 C interop tools.
与用 C(或至少有 C headers)编写的本机库进行互操作
Kotlin/JVM 和 Kotlin/Native 都可以使用 Kotlin Multiplatform 库。鉴于依赖项是一个多平台库,因此可以完全重用 Kotlin/JVM 和 Kotlin/Native 之间使用它的代码。
所以我知道 Kotlin Native 显然是 Native 而 Kotlin JVM 不是,而是 Kotlin JVM 和 Kotlin Native 之间的代码: 1.不同的编译器和不同的代码 2.不同的编译器和相似的代码 3.不同的编译器和相同的代码 4. 以上None(请说明)
Kotlin/JVM和Kotlin/Native编译器共享front-end(执行代码解析、名称解析、类型推断等的部分),但编译器back-ends将内部程序表示转换为目标代码(分别是 JVM 字节码和 LLVM 位码)的方法不同。
两个编译器接受的Kotlin语言是一样的,但是一些特性和检查是platform-specific。此外,Kotlin/JVM 和 Kotlin/Native 的标准库完全不同,请在此处查看每个平台上可用的 API:Kotlin Standard Library.
另一个很大的区别是内存模型:Kotlin/JVM 使用 Java 内存模型,而 Kotlin/Native 提供 its own concurrency and memory model。
另外,在Kotlin/JVM和Kotlin/Native项目中可以使用的依赖是不同的。除了使用相同的 Kotlin 目标构建的项目:
Kotlin/JVM 也可以使用为 JVM 构建的任何库(用 Java、Scala 等编写)
Kotlin/Native 还可以使用 C interop tools.
与用 C(或至少有 C headers)编写的本机库进行互操作Kotlin/JVM 和 Kotlin/Native 都可以使用 Kotlin Multiplatform 库。鉴于依赖项是一个多平台库,因此可以完全重用 Kotlin/JVM 和 Kotlin/Native 之间使用它的代码。