目前我正在学习KSP(Kotlin符号处理),我很好奇“符号”在KSP中是什么意思。
当谈到与KAPT的比较时,它说“为了未经修改地运行Java批注处理器,KAPT将Kotlin代码编译成Java存根,这些存根保留了Java批注处理器关心的信息。要创建这些存根,KAPT需要解析Kotlin程序中的所有符号。”
我不知道“Kotlin程序中的所有符号”到底是什么意思?
发布于 2021-10-30 10:53:11
我将“符号”理解为接口、类、函数、属性等的声明。它不包括主体或代码本身,只包括API,其他人可见的项。
这个术语并不是Kotlin所特有的。我在维基百科上找不到任何“符号”的定义,但例如本地库也包含符号表。
在这个特定的上下文中,这意味着KAPT必须在Kotlin代码中创建所有此类符号的完整列表,并在Java中生成它们的等价物,以便注释处理器可以处理它们。这是非常浪费的,因为我们在Java中重新创建了Kotlin代码结构,只是为了在几秒钟后将其丢弃,并替换为真正的编译代码。
https://stackoverflow.com/questions/69778626
复制相似问题