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
}}