//
// AssertPrecondition.swift
// SwiftCode
//
// Created by Alisa on 2020/8/21.
// Copyright © 2020 Alisa. All rights reserved.
//
import UIKit
//断言与先决条件
class AssertPrecondition: NSObject {
//断言的用法
func assertWork(age : Int) {
/*
1 断言的作用
断言会在运行的时候检查一个逻辑条件是否为true,如果条件判断为true,代码运行会继续,如果条件为false,
代码会运行结束,应用也会被终止
2 断言适合应用的场景
在编写程序时,如果很明确的知道不可用的状态发生在什么时候,这个时候很适合插入一个断言,断言中也可以加入
断言的注释信息
*/
//场景:当age的年龄不是大于零的值时,插入断言
if age > 0 && age < 10 {
print("You can ride the ferris wheel")
}
else if age > 10{
print("You can ride the roller-coaster or the ferris wheel.")
}
else{
//加入断言并给出触发断言时的错误信息
assertionFailure("A person's age can‘t be less than zero。")
/*程序运行后,会在这一行报错,并给出如下报错信息:
Fatal error: A person's age can‘t be less than zero。: file /Users/alisa/Desktop/SwiftCode/SwiftCode/Features/AssertPrecondition.swift, line 35
*/
}
}
//先决条件的用法
func preconditionWork(num : Int) {
/*
1 适合使用的场景
在代码中任何条件可能潜在为假但必须肯定为真才能继续执行的地方使用先决条件
2 先决条件的用法
使用precondition(_:_:file:line:)函数来实现先决条件,可以给这个函数传入一个表达式、一个错误的报错
文字信息,当表达式判定的结果为false时信息就会显示出来
*/
//当num大于100时判定条件为false,就触发先决条件,程序就会报错,并提示对应的错误信息为自己设置的信息
precondition(num < 100, "the num less than 100 is error!")
/* 控制台提示的错误信息如下:
Precondition failed: the num less than 100 is error!: file /Users/alisa/Desktop/SwiftCode/SwiftCode/Features/AssertPrecondition.swift, line 53
*/
}
}