美文网首页
Swift风格指南

Swift风格指南

作者: 婉卿容若 | 来源:发表于2016-07-14 11:40 被阅读62次

    在我们写Swift代码时,我们应尽量遵循如下原则:

    1. 可读性是最重要的。保持简短可以让你的代码更容易被理解。
    • 务必为函数添加文档注释 - 特别是泛型函数

    • 类型使用大写字母开头,函数和变量的使用小写字母开头,两者都使用驼峰式命名法。

    • 使用类型推断。省略掉显然易见的类型有助于提高代码可读性。

    • 如果存在歧义或者在进行定义的时候不要使用类型推断。(比如 func 就需要显式的指定返回类型)

    • 优先选择结构体,自由在确定需要使用到类特有的特性或者引用语义时才使用类。

    • 除非你的设计就是希望某个类被继承使用,否则都应该将它们标记为 final。

    • 除非一个闭包后面立即跟随有左括号,否则都应该使用尾随闭包(trailing closure)的语法。

    • 使用 guard 来提高退出方法。

    • 避免对可选值进行强制解包和隐式强制解包。它们偶尔有用,但是经常使用它们的话往往意味着有其他不妥的地方。

    • 不要写重复的代码。如果你发现你写了好几次类似的代码片段的话,试着将它们提取到一个函数里面,并且考虑这个函数转化为协议扩展的可能性。

    • 试着去使用 map 和 reduce ,但这不是强制的。当合适的时候,使用 for 循环也无可厚非。高阶函数的意义是让代码可读性更高,强行使用往往事与愿违,这种时候简单的 for 循环可能会更清晰。

    • 试着去使用不可变值:除非你需要改变某个值,否则都应该使用 let 开声明变量。不过如果能让代码更加清晰高效的话,也可以选择使用可变的版本。用函数将可变的部分封装起来,可以把它带来的副作用进行隔离。

    • Swift 的泛型可能会导致非常长的函数签名。坏消息是我们现在除了将函数声明强制写成几行以外,对此没有什么好方法。我们会再示例代码中在这点上保持一贯性,这样你能看到我们是如何处理这个问题的。

    • 最后可能是程序员中争吵最厉害的问题: 我们在大括号换行的处理上选择和 Swift 官方风格一致,那就是大括号不换行: } else {。

    PS:以上原则摘自《Swift 进阶》,这里摘录下来只是个人为了加深理解,并希望看书过程中对以上某些理解不清的原则做到融会贯通。
    PPS:如需购买本书可以进入这里 Objc中国, 感谢 喵神 等开发者前辈对中国iOS社区做出的贡献。请支持正版


    个人对以上原则的理解

    1. 针对原则6,首先我们不得不去理解结构体和类的区别。
      两者类型不同:类是引用类型,不管将其的同一个对象赋给多少变量或者常量,这些变量或者常量都将指向同一个对象, 其中每个变量或者常量存储的都是指向这个对象的引用(类似与指针),而不是副本;结构体截然不同,结构体是值类型,,讲结构体赋给变量或者常量是,将创建副本,将结构体作为参数传递给函数时情况也一样。
      结构体不支持继承,而类可以
      结构体不支持定义析构器(deinit),析构器只能在类中使用。 析构原理

    相关文章

      网友评论

          本文标题:Swift风格指南

          本文链接:https://www.haomeiwen.com/subject/gseejttx.html