首页 > 解决方案 > Kotlin 期望实际的数据类型

问题描述

是否可以在 commonMain 中定义数据类型的期望,然后在 jvmMain 或 jsMain 中提供实际数据类型?

例如,假设我想在 commonMain 类中的 JavaScript 和 Java 中使用 Date 的本地数据类型:

// commonMain
expect datatype Date

// jsMain
actual datatype Date = Date()

// jvmMain
actual datatype Date = LocalDate()

这样的事情可能吗?如果是这样,语法是什么样的?

标签: kotlin-multiplatform

解决方案


它们基本上是类。所以这里是语法

//commonMain [Date.kt]
expect class Date

//jsMain [Date.kt]
actual typealias Date = kotlin.js.Date //this one implements the js date

//jvmMain [Date.kt]
actual typealias Date = java.util.Date //or you can use the java.time.LocalDateTime

希望这可以帮助


推荐阅读