liangtong


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

Swift Classes and Structures

发表于 2016-11-24 | 分类于 iOS | 阅读次数:

​ 类和结构体是人们构建代码所用的一种通用且灵活的构造体。你可以使用几乎完全相同的语法规则给类和结构体定义属性、添加方法。与其他语言不同的是,Swift不需要你为自定义类和结构体去独立创建接口和实现文件。在Swwift中,你只需要使用一个单独的文件来定义类和结构体,系统会自动生成面向其他代码的外部接口。
通常类的实例被称为对象,Swift中类和结构体的关系比在其他语言中要密切

类和结构体的对比

类和结构体在Swift中有很多共同点,例如:

  • 定义属性用于存储值
  • 定义方法用于提供功能
  • 定义下标操作涌来通过下标语法来访问实例存储的值
  • 定义构造函数用于初始化值
  • 通过扩展来增加其功能的实现
  • 实现协议以提供某种标准功能
阅读全文 »

Swift Enumerations

发表于 2016-11-23 | 分类于 iOS | 阅读次数:

​ 枚举为一系相关联的值定义了一个公共的组类型来保证你在类型安全的情况下去使用这些值。 C语言里边的枚举是一系列整型值;Swift中的枚举更佳灵活,而且你不需要为枚举的每个成员赋值,枚举中的原始值(raw)可以是字符串、字符、数字等。
​ 就像其他语言中的联合体和变体,枚举中的成员可以被指定为不同于其他成员的可以存储的类型,你可以在一个枚举中定义一组相关的枚举成员,每一个枚举成员都可以有适当类型的关联值。
​ 在Swift中,枚举是一等(first-class)类型,它们支持了很多在传统上只被类(class)所支持的特性,比如计算属性(computed properties),用于提供枚举值的附加信息,实例方法(instance methods),用于提供和枚举值相关联的功能。枚举也可以定义构造函数(initializers)来提供一个初始值;可以在原始实现的基础上扩展它们的功能;还可以遵循协议(protocols)来提供标准的功能。

枚举语法

使用enum关键词来创建枚举并且把它们的整个定义放在一对大括号内:

1
2
3
enum SomeEnumeration {
// enumeration definition goes here
}

例如一个指南针方向的例子:

1
2
3
4
5
6
enum CompassPoint {
case north
case south
case east
case west
}

枚举中定义的值(如 north,south,east和west)是这个枚举的成员值(或成员)。你可以使用case关键字来定义一个新的枚举成员值。
与 C 和 Objective-C 不同,Swift 的枚举成员在被创建时不会被赋予一个默认的整型值。在上面的CompassPoint例子中,north,south,east和west不会被隐式地赋值为0,1,2和3。相反,这些枚举成员本身就是完备的值,这些值的类型是已经明确定义好的CompassPoint类型。

阅读全文 »

Swift Closures

发表于 2016-11-22 | 分类于 iOS | 阅读次数:

​ 闭包是一种可以在代码中传递和使用的自包含代码块。Swift中的闭包盒C/ObjC中的闭包与其它语言中的lambdas表达式类似。闭包可用捕获其被定义的上下文中的变量或常量。Swift会为你处理所有的通过捕获的内存管理。函数章节介绍的全局/嵌套函数,是闭包的特殊形式,闭包采取以下三种形式之一

  • 全局函数是一个有名字且不捕获任何值的闭包
  • 嵌套函数是一个有名字且可用捕获其封闭函数作用域内值的闭包
  • 闭包表达式是一个利用轻量级语法所写的可用捕获所在上下文中值(变量/常量)的没有名字的闭包

Swift中的闭包表达式拥有清晰、简洁的风格,在以下常见的场景中实现闭包优化:

  • 根据上下文怼参数和返回值进行类型推断
  • 单表达式闭包可用省略return关键字
  • 参数名称可用缩写
  • Trailing闭包语法
阅读全文 »
1…151617…20
liangtong

liangtong

Keep hungry keep foolish!

59 日志
7 分类
17 标签
GitHub E-Mail 微博 知乎
友情链接
  • lidm1989
© 2016 — 2018 liangtong
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4