liangtong


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

Swift Nested Types

发表于 2016-12-01 | 分类于 iOS | 阅读次数:

​ 枚举常被用于为特定类或结构体实现某些功能。类似的,枚举可以方便的定义工具类或结构体,从而为某个复杂的类型所使用。为了实现这种功能,Swift 允许你定义嵌套类型,可以在支持的类型中定义嵌套的枚举、类和结构体。
要在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的{}内,而且可以根据需要定义多级嵌套。

嵌套类型实践

下面这个例子定义了一个结构体BlackjackCard,用来模拟BlackjackCard中的扑克牌点数。BlackjackCard结构体包含两个嵌套定义的枚举类型Suit和Rank。
在BlackjackCard中,Ace牌可以表示1或者11,Ace牌的这一特征通过一个嵌套在Rank枚举中的结构体Values来表示:

阅读全文 »

Swift Extensions

发表于 2016-12-01 | 分类于 iOS | 阅读次数:

​ 扩展为一个已有的类、结构体、枚举类型或者协议类型添加新功能。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即 逆向建模 )。扩展和 Objective-C 中的分类类似。(与 Objective-C 不同的是,Swift 的扩展没有名字。)
在Swift中,扩展可以:

  • 添加计算型属性和计算型类型属性
  • 定义实例方法和类型方法
  • 提供新的构造器
  • 定义下标
  • 定义和使用新的嵌套类型
  • 使一个已有类型符合某个协议

在 Swift 中,你甚至可以对协议进行扩展,提供协议要求的实现,或者添加额外的功能,从而可以让符合协议的类型拥有这些功能。
扩展可以为一个类型添加新的功能,但是不能重写已有的功能。

阅读全文 »

Swift Type Casting

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

​ 类型转换 可以判断实例的类型,也可以将实例看做是其父类或者子类的实例。
​类型转换在 Swift 中使用 is 和 as 操作符实现。这两个操作符提供了一种简单达意的方式去检查值的类型或者转换它的类型。也可以用它来检查一个类型是否实现了某个协议

阅读全文 »
1…111213…20
liangtong

liangtong

Keep hungry keep foolish!

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