Kotlin如何与Java和JavaScript互操作?

los*_*hua 4 java android kotlin

Kotlin网站声明:

Kotlin与Java 100%可互操作.

Kotlin是Java的子集/超集吗?

此外,文档还指出Kotlin与JavaScript兼容,那么如何编译它以支持两者?Kotlin是Xamarin的跨平台语言吗?

Java是否插回到Kotlin?

fre*_*dev 8

Kotlin是一种静态类型的编程语言,可以在Java虚拟机上运行,​​也可以编译为JavaScript源代码.

这意味着Kotlin有两个编译器,前者生成可以在JVM中执行的字节码,后者只生成Javascript.

这使得Kotlin可以与这两种语言互操作.

关于Kotlin和Java

例如,当Java字节码和Kotlin字节码在同一个JVM中运行时,您可以从Kotlin调用Java和/或从Java调用Kotlin.

从Kotlin调用Java代码从Java调用Kotlin

Kotlin在设计时充分考虑了Java互操作性.可以以自然的方式从Kotlin调用现有的Java代码,并且可以相当平滑地从Java使用Kotlin代码.

零安全和平台类型

Java中的任何引用都可能为null,这使得Kotlin对严格的null安全性的要求对来自Java的对象不切实际.Java声明的类型在Kotlin中被特别处理并称为平台类型.对这些类型放宽空检查,因此对它们的安全保证与Java相同

关于Kotlin和Javascript

同样,当您使用生成Javascript的Kotlin编译器时,您可以在同一个JavaScript引擎中将Kotlin与Javascript源一起运行.所以你可以从Javascript调用Kotlin和/或从Kotlin调用Javascript.

从Kotlin调用JavaScript

Kotlin旨在与Java平台轻松互操作.它将Java类视为Kotlin类,Java将Kotlin类视为Java类.但是,JavaScript是一种动态类型语言,这意味着它不会在编译时检查类型.您可以通过动态类型自由地与Kotlin的JavaScript交谈,但如果您想要Kotlin类型系统的全部功能,您可以为JavaScript库创建Kotlin头.

从JavaScript调用Kotlin

Kotlin编译器生成可以从JavaScript代码中自由使用的普通JavaScript类,函数和属性.然而,你应该记住一些微妙的事情.为了防止破坏global>对象,Kotlin创建了一个包含当前模块中所有Kotlin声明的对象.因此,如果将模块命名为myModule,则所有>声明都可通过myModule对象用于JavaScript .

关于你关于Xamarin的问题,我只会说Xamarin和Kotlin是两个完全不同的东西.您可以将Xamarin与Ionic或PhoneGap进行比较,因为它们是可以让您创建多平台应用程序的产品.

另一方面,Kotlin是一种语言,您可以编译该语言以在不同的环境和/或设备上运行程序.