我可以使用“期望/实际常量”吗?

时间:2019-06-02 13:33:52

标签: kotlin kotlin-multiplatform

我想使用平台提供的默认参数值(JVM,JS等)来制作一些多平台函数。

我试图将const关键字放入期望值/实际值,但编译器抱怨。

  • 公用部分:
expect const val PLATFORM: String
expect fun printPlatform(value: String = PLATFORM)
  • 实际部分(在jvm中):
actual const val PLATFORM: String = "JVM"
actual fun printPlatform(value: String) {
    System.out.println("Platform: $value")
}

但是编译器抱怨:Const 'val' should have an initializer. 而且,如果我同时从这两个关键字中都删除了const关键字,则性能可能会比以前低(实际上并不重要,但是..),编译器建议:Might be 'const'。因此,我想使用const关键字。 另外,如果我将默认值放在实际部分中,编译器也会抱怨。

我不能在期望/实际模式中使用const val吗?

编辑:实际上,我实际上只使用JVM,但由于可能需要支持其他平台,所以我使用kotlin mpp。

0 个答案:

没有答案