整数如何存储文字(例如var x = 0)

时间:2016-11-24 19:27:14

标签: swift

当我写var x = 0

我知道x是一个具有属性和方法的对象(从Int Structure创建)。

x在哪里以及如何存储0?

0是否存储为x?

属性

如果是,该属性的类型是什么?

如果没有,它存储在哪里?

1 个答案:

答案 0 :(得分:0)

严格来说,

x不是一个对象。 "对象"是我们为实例类提供的名称,不是结构。 xInt结构的实例

Int结构包装Builtin整数类型,并定义了一组可以调用它的方法。那个内置的整数文字类型是不能从Swift访问的(也没有理由)。与所有结构一样,Int的实例存储在运行时堆栈中。例如,它们不是像Java中Integer那样的堆上的对象。

您可以看到implementation details of (U)Int(8/16/32/64) here。此文件使用Swift团队创建的Generate Your Boilerplate(GYB)预处理器从.swift模板文件生成.swift.gyb个文件。 在line 221,您可以看到_value类型的属性Builtin.${BuiltinName}。 GYB预处理器将其扩展为Int _value类型为Builtin.IntInt64Built.Int64等。