Ios swift中的类型推断(自动类型检测)是如何工作的?

Ios swift中的类型推断(自动类型检测)是如何工作的?,ios,xcode,swift,Ios,Xcode,Swift,LLVM如何检测变量是字符串 编译器分步骤完成它的工作,类型推断是这个过程中的一个步骤 第一步:词汇分析 通常,作为第一步,编译器会进行词法分析,将输入文件字节拆分为数字和字符串等单位(注意:字符串的含义与您引用的含义不同),并丢弃空格和注释 例如,它将示例中的输入流拆分为var,str,=,“,字符串,” 步骤2:语法分析 第二步是语法分析或解析,在这一步中,编译器根据语言的语法构造并验证 在这种情况下,它将构造一个抽象语法树,表示一个变量声明语句(请参见语言参考中的内容),其形式如下: va

LLVM如何检测变量是字符串

编译器分步骤完成它的工作,类型推断是这个过程中的一个步骤

第一步:词汇分析 通常,作为第一步,编译器会进行词法分析,将输入文件字节拆分为数字和字符串等单位(注意:字符串的含义与您引用的含义不同),并丢弃空格和注释

例如,它将示例中的输入流拆分为
var
str
=
字符串

步骤2:语法分析 第二步是语法分析解析,在这一步中,编译器根据语言的语法构造并验证

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

var str = "string"
其中表达式为字符串文字

var variable_name = expression
步骤3:语义分析(带类型推断) 第三步是语义分析,在这一步中进行类型推理。在这种情况下,类型推断推断字符串文字的类型是
string
,并且因为没有关于变量
str
的其他信息,它将推断
str
必须是
string
,因为表达式(变量声明的右侧)的类型是
string


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

很想知道它是如何工作的。类型推断是编译器的一部分,这是一个非常广泛的问题subject@marosoaie没有任何文档或解释?@riyaz@ryiaz此线程有一些有趣的参考:
var variable_name = string_literal