ios – 类型推断(自动类型检测)如何在swift中工作?

var str = "string"

LLVM如何检测变量一个字符串?

解决方法

编译器按步骤完成其工作,类型推断是此过程中的一个步骤.

第1步:词法分析

通常,作为第一步,编译器执行词法分析,其中将输入文件字节拆分为数字和字符串等单位(注意:还没有与您所指的相同的字符串)并抛弃空白和注释.

例如,它将示例中的输入流拆分为var,str,=,“,string,”.

第2步:语法分析

第二步是语法分析或解析,其中编译器基于语言的语法构造和验证abstract syntax tree.

在这种情况下,它将构造一个抽象语法树,表示形式的变量声明语句(参见语言参考中的Declaration statements):

var variable_name = expression

其中表达式是字符串文字

var variable_name = string_literal

第3步:语义分析(带类型推断)

第三步是语义分析,并在此步骤中进行类型推断.在这种情况下,类型推断推断字符串文字的类型是String,并且因为没有关于变量str的其他信息,它将推断str必须是String,因为表达式,变量声明的右侧,是String类型.

此步骤后有更多步骤.作为后续步骤,编译器通常生成中间代码,然后优化中间代码,最后生成汇编代码.之后,编译器外部的工具链通常至少具有生成最终可执行文件链接阶段.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...