Swift typealias 介绍

typealias : 类型别名, alias 别名的意思

  import TBMtimeBaseControll
  import RxCocoa
  import RxSwift

   // typealias 类型别名
   public typealias Address = CGPoint
   public typealias Time = Int

// 定义闭包
typealias SuccessCallBack = (_ code:String, _ message:String) ->Void

class MNFEnume: MNFBaseViewController {

    var po1:CGPoint?
    var po2:Address?

      // 定义闭包 这两种闭包声明有什么区别 有个锤子 第二个明显比第一个要好 用个锤子的typealias
    var customCall:SuccessCallBack?
    var callBack:((_ code:String, _ message:String) ->Void)?

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .white
    print("************************************")
    custom1()
    
    if let call = customCall {
        call("你是谁","你管我是谁")
    }
    
    if let call = callBack {
        call("你是谁22222","你管我是谁2222")
    }
}

func custom1(){
    po1 = CGPoint(x: 0, y: 0)
    po2 = po1
    
    // 这里po1与po2 其实一模一样 typealias 相当于将两种类型相关联 这样容易误导知道就好了
    print("这里po1与po2 一模一样,包括指针")
    print(po1 as Any)
    print(po2 as Any)
}

func custom2(_ index:Int) -> Int{
    // 只看 index: Int 根本不知道 这个index 是干什么的 包括 返回了一个Int 根本清除干什么
    return 1
}

func custom3(_ index:Time) -> Time {
    // 从这里我们可以看到 需要传进来一个时间参数 并且返回的时候也返回了一个时间值 通过这样我们可以一目了然明白 上下文逻辑
    // 看似方便了 实际方便你妈了个屁!
    /**
     * 1、首先站在开发者的角度来说 没说的 你明白就好 你想怎么写就怎么写 毕竟代码是你的
     * 2、站在阅读者的角度,我们看到的代码绝对不只一两行 当我们改动或者阅读别人代码的时候 肯定是一大片
     *     1、首先 每个人的理解不同,往往一个英文单词代表多重意思
     *     2、我看代码之前我还必须先一一记住你的定义 对应的是哪种类型 ,我再去率代码,我率你奶奶个爪,你在方法前写上注释不好嘛
     *          非要我他妈去猜 猜不对时再去查看对应 我猜你奶奶个爪
     *     3、 这种只限于库 以及基础库用法 在实际开发中 少他娘跟老子装逼 老老实实写上注释
     */
    return 2
}}

你可能感兴趣的:(Swift typealias 介绍)