Swift中的typealias(别名)的用法

// swift中的typedef:使用关键字(typealias)定义类型别名,类似typedef

typealisa 简单使用

1.示例如下

typealias point = CGPoint

func setPoint(_: point){}

说白了就是给  某个已经存在的类型  改一个姓名字  昵称 以便于好理解  好记  上面的point就是  CGPoint  的一个别名  在用到CGPoint的时候就可以用point来代替

2.关于涉及泛型 的类型别名 有点不同 示例如下

class Person<T> {}

typealias WorkId = String

typealias Worker = Person<WorkId>

首先提一下 typealias 是单一的,这也就限制了它 只能将某个特定的类型 通过typealias 来定义成新的名字  而不能将整个泛型类型进行重命名。

这也就是为什么上面的 WorkId 为什么定义为 String 类型

3.用typealias来定义 block 或者说闭包 示例如下

typealias sendValueClosure = (sendString: String) -> Void//声明

var callBackString: sendValueClosure?//持有

self.callBackString!(sendString: self.nameString)//调用

4.在Swift中使用闭包来实现两个界面的传值,用来反向传值很方便

例如:有A类和B类.

B类

  1. //声明闭包
  2. typealias valueBlock = (Float)->()
  3. var returnPrice: valueBlock?
  4. //调用该闭包
  5. self.returnPrice?(price)

A类

  1. let sb = UIStoryboard(name:"Main", bundle: nil)
  2. let vc = sb.instantiateViewControllerWithIdentifier("keypadViewVC") as! keypadViewVC
  3. //B类的回调
  4. vc.returnPrice = {price in self.gratuityBtn.setTitle(String(format: "%.2f", price), forState:UIControlState.Normal)}
  5. self.presentViewController(vc, animated: true, completion: nil)

参考:http://www.jianshu.com/p/5a3fd872257e

http://blog.csdn.net/u010130947/article/details/51697925

http://blog.csdn.net/wmmhwj/article/details/52366494

swift_042(Swift的typealias(别名)的用法)相关推荐

  1. Mybatis源码之(TypeAliasRegistry)TypeAlias别名实现机制

    原文链接:http://blog.csdn.net/qq924862077/article/details/52612589 ---------------------------------- 在M ...

  2. oracle别名as用法

    oracle别名as用法 1.在oracle中as的作用主要是为表中的字段添加别名.如下图 2.在命名别名的时候也可以区分大小写,不过要加双引号"",如果不加双引号只是首字母大写的 ...

  3. 数据库表和列的别名的用法

    数据库表和列的别名的用法 使用数据库别名可以让sql语句的可读性更强 1.怎么给数据库表和某列(字段)起别名 用as就可以 列的别名:sql = "select 列名 as 别名 from ...

  4. Swift - 闭包的介绍及用法(以数组排序为例)

    闭包(即一些小的匿名代码块),可以像函数一样使用.可以很方便的将闭包传给其他函数,告诉它们应当如何执行某一个任务. 1,使用sort方法和闭包进行数组排序 sort方法返回一个数组的有序版本.(sor ...

  5. 关于mybatis注解之@alias别名用法

    Springboot 整合mybatis的时候,关于别名的用法 此处列举比较常见的两种用法 1.配置文件定义别名 如图所示:映射所需实体的类名 2.实体类注解别名 如图所示:实体类直接加注解 这样Ma ...

  6. swift与OC之间不得不知道的21点

    2019独角兽企业重金招聘Python工程师标准>>> swift与OC之间不得不知道的21点 原文  http://www.cnblogs.com/dsxniubility/p/4 ...

  7. Swift相关api功能介绍与使用

    一. 将Protocol的方法声明为mutating Swift的协议不仅可以被class类型实现,也适用于struct和enum, 因为这个原因在写给别人用的协议时需要考虑是否使用mutating来 ...

  8. Swift入门[基于Java基础]

    Swift入门 学习目标 由于已经有了Java编程思想,所以着重了解Swift语言特有的特性,与Java不一样的地方.最终目的是可以使用Swift语言开发iOS应用. 学习过程 [阅读苹果官网Swif ...

  9. 浅谈Swift和Objective-C之间的那点事。。。

    Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用.Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制.Swift 采用安全的编程模式并添加了很多新特性 ...

最新文章

  1. 新年新技术:MongoDB 3.0
  2. 预测----三个原则
  3. 微软图像加密算法被破解,谷歌等大厂都在用,MIT硕士小哥开源逆向所用方法...
  4. Spring TX源码分析
  5. [ZJOI2012]数列
  6. 安卓手机可以改鸿蒙吗,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪
  7. PHP 国家电话区号 PHP Countries and their call codes with two letter abbreviations
  8. 游戏可以html+上运行吗,运行多个,如果在HTML游戏
  9. Android 开发常见错误
  10. centos 7 网络DNS设置的相关配置文件配置
  11. 关于oracle数据库分页的原理及实现
  12. 阶段3 3.SpringMVC·_06.异常处理及拦截器_3 SpringMVC异常处理之异常处理代码编写
  13. 学习web前端历程(十七)
  14. 四叉树(QuadTree)原理
  15. etc fstab 详解linux,/etc/fstab功能详解
  16. 生先森依旧怀抱初心,满载爱意
  17. 中国会计科目的中英文对照
  18. 泛函分析笔记06:Lp与lp空间
  19. 使用MATLAB进行K-means聚类和层次聚类
  20. python什么证书最有价值,python考什么证含金量高

热门文章

  1. 分布式系统唯一ID生成方案汇总
  2. 【Android】 01. APP 进程启动和 ActivityThread 的关系
  3. PARSEC測试集的应用领域和working set的大小
  4. 重构路上遇到的一些兼容性问题
  5. 给.net程序打内存补丁-转
  6. 转载:一位资深程序员大牛给予Java初学者的学习路线建议
  7. C# DataGridView 的UserDeletingRow事件,删除
  8. 接口测试01 - HTTP协议报文结构及示例
  9. Python安装时我遇到的一些问题
  10. linux下多线程的调试