我想做一些多平台功能,使用平台提供的默认参数值(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 因为我可能必须支持其他平台。