Swift--编译生成SIL(Swift Intermediate Language)

来源:互联网 发布:怎么建立子域名 编辑:程序博客网 时间:2024/05/16 00:29

对于下面的代码:

class Point {    var x:Int    var y:Int    init(x:Int, y:Int) {        self.x = x         self.y = y     }   }var pt = Point(x:111, y:222)pt.x = 2015var data = pt.x

xcrun编译.swift生成中间文件.sil(swift intermediate language)

$ xcrun -sdk macosx swiftc -emit-silgen point.swift -o point.sil

在编译生产的中间文件point.sil中可以看到:

sil_vtable Point {  #Point.init!initializer.1: _TFC5point5PointcfMS0_FT1xSi1ySi_S0_       // point.Point.init (point.Point.Type)(x : Swift.Int, y : Swift.Int) -> point.Point  #Point.deinit!deallocator: _TFC5point5PointD  // point.Point.__deallocating_deinit    #Point.x!getter.1: _TFC5point5Pointg1xSi      // point.Point.x.getter : Swift.Int  #Point.x!setter.1: _TFC5point5Points1xSi      // point.Point.x.setter : Swift.Int  #Point.x!materializeForSet.1: _TFC5point5Pointm1xSi   // point.Point.x.materializeForSet : Swift.Int  #Point.y!getter.1: _TFC5point5Pointg1ySi      // point.Point.y.getter : Swift.Int  #Point.y!setter.1: _TFC5point5Points1ySi      // point.Point.y.setter : Swift.Int  #Point.y!materializeForSet.1: _TFC5point5Pointm1ySi   // point.Point.y.materializeForSet : Swift.Int}

编译器自动生成了setter和getter

0 0
原创粉丝点击