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?

      // 定義閉包 這兩種閉包聲明有什么區(qū)別 有個錘子 第二個明顯比第一個要好 用個錘子的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 相當(dāng)于將兩種類型相關(guān)聯(lián) 這樣容易誤導(dǎo)知道就好了
    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 {
    // 從這里我們可以看到 需要傳進(jìn)來一個時間參數(shù) 并且返回的時候也返回了一個時間值 通過這樣我們可以一目了然明白 上下文邏輯
    // 看似方便了 實際方便你媽了個屁!
    /**
     * 1、首先站在開發(fā)者的角度來說 沒說的 你明白就好 你想怎么寫就怎么寫 畢竟代碼是你的
     * 2、站在閱讀者的角度,我們看到的代碼絕對不只一兩行 當(dāng)我們改動或者閱讀別人代碼的時候 肯定是一大片
     *     1、首先 每個人的理解不同,往往一個英文單詞代表多重意思
     *     2、我看代碼之前我還必須先一一記住你的定義 對應(yīng)的是哪種類型 ,我再去率代碼,我率你奶奶個爪,你在方法前寫上注釋不好嘛
     *          非要我他媽去猜 猜不對時再去查看對應(yīng) 我猜你奶奶個爪
     *     3、 這種只限于庫 以及基礎(chǔ)庫用法 在實際開發(fā)中 少他娘跟老子裝逼 老老實實寫上注釋
     */
    return 2
}}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容