考虑以下示例代码:
// in file A.kt expect class Foo(bar: Int) { fun baz() }
// in file B.kt actual class Foo actual constructor(val bar: Int) { actual fun baz() { println("Actual baz") } }
// in file C.kt fun main() { val foo = Foo(42) foo.baz() }
当使用actual/expect实现跨平台解决方案时,在实现类时,必须使用实际实现的类名和构造函数,并在函数上使用实际函数名称。 在试图使用相同的实际实现名称来实现功能时,将导致重复声明错误。 因此,应遵循上面示例中所示的实现方式。
注意:在使用actual/expect时还应将kotlin版本保持一致,以避免出现任何异常。