第一個(gè)
@autoclosure 寫一個(gè)判斷 當(dāng)?shù)谝粋€(gè)條件不成立的時(shí)候 , 就不會去判斷第二個(gè)條件
func twogothrough(_ l : Bool, _ r : @autoclosure ()->Bool) -> Bool {
guard l else {
return false
}
return r()
}
if twogothrough(true, true ) {
print("兩個(gè)都成立")
}
第二個(gè)
DispatchSemaphore信號量
let sema = DispatchSemaphore.init(value: 0)
let time1 : TimeInterval = 3.0
DispatchQueue.global().asyncAfter(deadline: DispatchTime.now() + time1) {
sema.signal()
}
let time : TimeInterval = 2.0
let result = sema.wait(timeout: DispatchTime.now() + time)
if result == .success {
print("success")
}else{
print("timeOut")
}
print("sema")