Swift:尝试阅读Swift源代码

时间:2018-07-08 19:27:29

标签: swift

我对编码还很陌生,但是由于缺乏知识,我经常遇到问题。我想通过阅读swift的源代码来自学,但我要么不知道如何阅读,要么不知道如何访问它。

简单的例子:我想了解更多-假设是整数。因此,我输入Int并命令单击“跳转到[其]定义”按钮。 我在其中找到以下内容:

    public struct Int : FixedWidthInteger, SignedInteger { 
        ..
        public typealias IntegerLiteralType = Int
        ..
        public init(bitPattern x: UInt)
        ..
        public static func *= (lhs: inout Int, rhs: Int)
        ...

这些方法和函数中的一些对我来说很有意义,但是,与后者一样,许多方法和函数都缺少函数体。

所以我的问题是:我如何访问例如 public static func * =(lhs:inout Int,rhs:Int),或者如果那一行实际上是整个定义,我在哪里可以学习如何正确地读取它?

3 个答案:

答案 0 :(得分:2)

Swift是一种开源语言,这意味着所有实现都可以免费在Github上浏览。

不幸的是,您选择了一个非常棘手的人。 Swift中有许多整数类型,为了管理所有在这些整数类型上实现某些方法几乎相同的实现的样板,Swift使用了一种称为gybgenerate your boilerplate)的工具。不过,该实现可以在stdlib/public/core/Integers.swift.gyb中找到。

答案 1 :(得分:0)

  

这些方法和函数中的一些对我来说很有意义,但是,就像后者一样,许多方法和函数都缺少函数体。

正确,因为您正在查看Swift header 文件。它显示声明,而不是实现。它不是实际来源。源码在github上,并且大多数不是用Swift编写的。

与一般可可豆相似。您可以看到头文件。源关闭。

  

我想通过阅读swift的源鳕鱼来自学

错误的计划。当然,请阅读一些Swift代码。但不是语言本身的来源。

答案 2 :(得分:-3)

在研究了您给我的一些链接后,我认为我现在可以自己回答问题了。

在Swift中实现了很多功能,但是源代码并未发布到其中。一个示例是框架UIKit。 Apple没有兴趣共享有关如何定义这些对象的信息,因此很难访问它们的定义。

但是,Swift的通用语言源代码已向公众开放,可以在GitHub上找到和下载,但是您将无法在App Store中发布任何使用更改后的源代码运行的应用程序,在xCode中使用的Swift缺少很多拼图。因此,如果您打算开发自己的语言,那么它会很有帮助,而不是想要获得更多有关Swift的工作原理的知识。最后,这可能会提高语言的安全性,但同时又使人们更难于实际理解和定制Swift。