无需编译即可使用的扩展
Extension available for use without compilation
我想检查是否有必要在使用刚刚创建的扩展之前编译代码。作为测试,我创建了一个示例扩展
extension String {
func checkExtension() {
}
}
当我这样做时,我既没有保存 Swift 文件中的更改,也没有编译代码。但是 checkExtension
可用于 String
变量。
Query : SDK如何在不编译的情况下知道已经创建了一个扩展,并且它的功能可以在相应的 class 中使用?
Swift 前端编译器会处理这个问题。
所以Compiler分为Front end和Back end。
前端:负责词法分析、句法分析(解析)、语义分析
后端:优化、机器相关优化、代码生成。
(有时分析和优化被称为中端)
在Swift编译器架构中,他们将词法分析器和语法分析器称为解析器。它构建了 AST(抽象语法树)。 Which 用于知道什么属于哪里,AST 用于在我们输入错误时发现错误和 Auto Complete 等等。同样,swift 扩展就是这样工作的。
当我们构建或编译我们自己时,后端开始发挥作用。当我们谈论编译器时,我们通常将其称为编译器。但是在 Most IDE's 中,fornt end 始终处于活动状态。
我想检查是否有必要在使用刚刚创建的扩展之前编译代码。作为测试,我创建了一个示例扩展
extension String {
func checkExtension() {
}
}
当我这样做时,我既没有保存 Swift 文件中的更改,也没有编译代码。但是 checkExtension
可用于 String
变量。
Query : SDK如何在不编译的情况下知道已经创建了一个扩展,并且它的功能可以在相应的 class 中使用?
Swift 前端编译器会处理这个问题。
所以Compiler分为Front end和Back end。
前端:负责词法分析、句法分析(解析)、语义分析
后端:优化、机器相关优化、代码生成。 (有时分析和优化被称为中端)
在Swift编译器架构中,他们将词法分析器和语法分析器称为解析器。它构建了 AST(抽象语法树)。 Which 用于知道什么属于哪里,AST 用于在我们输入错误时发现错误和 Auto Complete 等等。同样,swift 扩展就是这样工作的。
当我们构建或编译我们自己时,后端开始发挥作用。当我们谈论编译器时,我们通常将其称为编译器。但是在 Most IDE's 中,fornt end 始终处于活动状态。