本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
KMP使用expect
和 actual
关键字
在 Kotlin Multiplatform 项目中,expect
和 actual
关键字被用于处理不同平台的 API 调用。以下是如何使用这些关键字的详细步骤和规则:
1、 定义预期声明(Expected Declarations):
在共通代码集中(例如 commonMain
),使用 expect
关键字声明一个结构,这可以是函数、属性、类、接口、枚举或注解。这些预期声明不包含实现代码,而是作为平台无关的 API 供共通代码使用。
2、 提供实际声明(Actual Declarations):
在每个平台特定的源代码集中(例如 androidMain
、iosMain
),声明与预期声明相同的结构,并使用 actual
关键字标记。这些实际声明通常包含使用特定平台库的实现。
3、 编译器匹配:
编译特定目标平台时,编译器会尝试匹配共通代码集中的每个 expect
声明与平台特定源代码集中的相应 actual
声明。编译器确保:
- 每个
expect
声明在每个平台特定源代码集中都有匹配的actual
声明。 expect
声明不包含实现。- 每个
actual
声明与对应的expect