素材:A Swift Tour

推荐下载Playground:Download Playground

objc 自己较为熟悉,想熟悉下风头正劲的 swift。就先从官方的入门手册开始撸。

每一小节,我都摘录或总结3个对自己三观冲击最大的【知识点】,以方便以后温习。总结不保证绝对正确,仅供交流之用。O(∩_∩)O哈哈~

Simple Values

  • var 表示变量
  • let 声明常量
  • [] 用于声明数组和字符串

Control Flow

  • if 或 while 等的判断条件中必须使用布尔值.
  • 判断条件中的可能为 nil 值,统一使用 let varName = maybeNil 语法.
  • for in 循环,可同时应用于数组,字典或特定范围(Range).

Functions and Closures

  • 形参新增了 "标签" 语义,有效丰富了函数重载的语义
  • "标签" 语义,不适合用于用作函数参数或函数返回值的函数的声明里.
  • 闭包中,区分参数和函数体的,是通过 in 关键字来分割的.

Objects and Classes

  • swift 默认不会使用零值在声明时初始化变量.
  • let 常量,只能初始化一次,但可以不在声明时立即初始化.
  • 子类初始化顺序是: 子类未初始化属性的初始化 --> 调用父类 init 方法 --> 其他额外操作

Enumerations and Structures

  • struct 是复制传值,即使只是简单的 var a = b, a 和 b 也是两个独立的对象.
  • enum 不是必须和某个类型值的关联.
  • enum 可以使用某种模式来作为动态匹配的 case.

Protocols and Extensions

  • 增加新数据结构通用语法: [class|struct|enum|extension|protocol] 名称 : [class|protocol] {...}
  • Int 等基础类型,其实现是一个 Struct
  • enum 和 extension 不可以持有属性,但是可以用 get 方法来模拟一个属性

Error Handling

  • try 和有 throws 声明的函数配对使用.
  • try? 可选操作,有异常抛出则返回nil; try! 强制操作,有异常抛出,则抛出无法 do-catch 的致命异常.
  • defer block 在函数异常退出时,也可以正常执行.

Generics

  • 函数,方法,类,枚举和结构体支持泛型的泛型的方式,就是在声明时的名称后,加 <泛型1, 泛型2, ...>
  • 使用泛型时,要保证能在编译期推导出其类型.
  • 可以使用 where 指定对泛型类型本身的一些要求.

【读书笔记】A Swift Tour的更多相关文章

  1. 《Swift编程语言》中文翻译及读书笔记page25

    The Swift Programming Language读书笔记学习笔记 第25页 本页主要说在swift语言里能够使用分号,但分号不作为每条swift语言语句的结尾 而是间隔写在一行的多条swi ...

  2. 【读书笔记】The Swift Programming Language (Swift 4.0.3)

    素材:Language Guide 初次接触 Swift,建议先看下 A Swift Tour,否则思维转换会很费力,容易卡死或钻牛角尖. 同样是每一章只总结3个自己认为最重要的点.这样挺好!强迫你去 ...

  3. CSAPP 并发编程读书笔记

    CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...

  4. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  5. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  6. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  7. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  8. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  9. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. jquery 循环数组输出显示在html页面

    jquery 没有双向数据绑定,但是很多需求确实需要我们从后台接收到数组或者对象循环显示在前台页面上,这时我们可以用字符串拼接,元素添加的方法去实现 js部分如下: $(function(){ var ...

  2. ThreadLocal中的WeakReference

    在一般的网站开发中,基于Java的Web 框架都使用了ThreadLocal来存储一些全局的参数,在拦截器\Filter中设置变量,让变量可以在任意地方被获取. 一早就了解到里面有用到WeakRefe ...

  3. [转]git问题ERROR: Repository not found.的解决

    原文地址:http://blog.csdn.net/u010154424/article/details/51233966 在github中新增了一个项目,按照git的提示添加了远程仓库,但是提交的时 ...

  4. centos yum install redis

    linux下yum安装redis以及使用 1.yum install redis      --查看是否有redis   yum 源 [root@localhost ~]# yum install r ...

  5. maven项目对于测试时“无法加载主类”的解决方案

    1.右键maven项目,选择  build path --------->Configure Build Path  ,执行下列操作,保存即可.

  6. 【NOIP2014提高组】飞扬的小鸟

    https://www.luogu.org/problem/show?pid=1941 从某一点开始飞直到飞出地图最少点击屏幕的次数,显然只和该点的坐标唯一相关,没有后效性,考虑用DP解.令f(i,j ...

  7. Reminders在电商推荐中的价值

    原论文在UMAP'16.文章并没有太高深的模型,比较接地气:但其观点与结论很独到,并且在工业界具有很强的实际操作价值. 针对推荐系统的研究大多关注在挖掘用户并不知道但是却与其兴趣相关的物品.不过每个推 ...

  8. elasticsearch 学习笔记

    基本概念 集群和节点的概念1.集群是由节点组成的2.每个集群都有唯一的名字默认是elasticsearch3.cluster.name: niubiwali //集群的名字很重要因为每个节点只是集群的 ...

  9. FPGA编程基础(一)--參数传递与寄存器使用

    一.參数映射 參数映射的功能就是实现參数化元件.所谓的"參数化元件"就是指元件的某些參数是可调的,通过调整这些參数从而可实现一类结构类似而功能不同的电路.在应用中.非常多电路都可採 ...

  10. linux下分析Java程序内存汇总

    使用pmap查看进程内存 执行命令 使用pmap能够查看某一个进程(非java的也能够)的内存使用使用情况, 命令格式: pmap 进程id 演示样例说明 比如执行: pmap 12358 显示结果例 ...