首页 > 代码库 > Welcome to Swift (苹果官方Swift文档初译与注解十四)---90~93页(第二章)

Welcome to Swift (苹果官方Swift文档初译与注解十四)---90~93页(第二章)

Debugging with Assertions (断言调试)

  断言是一个假设逻辑条件为真的运行时检查机制.在执行任意代码之前,可以使用断言来确认一个基本的条件情况.如果条件判断为真,代码将继续执行,如果条件为假,代码将会结束,应  用程序也会退出.

  如果在调试环境中,运行的代码触发了一个断言(比如你在Xcode中编译并运行一个应用),你可以明确的看到错误的状态发生在哪里,并且查询应用程序在这个时刻的状态.断言也可以让  你使用适合的调测显示信息作为断言信息.

  可以写一个全局函数assert来触发断言,传递给函数assert一个true或false的表达式,如果是false,将会显示一段信息:

    let age = -3

    assert(age >= 0, "A person‘s age cannot be less than zero")

    // this causes the assertion to trigger, because age is not >= 0

  这个代码例子中,只有当 age >= 0成立的时候,代码才会继续执行下去,也就是说,age的值是非负数.如果age的值是负数,那么age>=0条件不成立,断言被触发,程序结束.

  断言信息不能插入字符串,如果不需要信息,可以像下面的代码一样,忽略它:

    assert(age >= 0)

When to Use Assertions (什么时机使用断言)

  如果代码的执行必须在某个条件为true时才能继续,那么条件在任何有潜在的false情况下,可以使用断言.推荐的断言检查情况包括:

    •   传递给索引的整数下标,这个下标可能太小或太大.
    •   传递给函数的值,不合法的值可能无法让函数完成相应的任务.
    •   当前值为nil 的可选类型值,后续代码执行可能会给可选类型赋予一个非nil的值.

  注意点:

  断言会停止你的应用并结束,但断言不是为了在代码设计中防止出现不希望的非法条件.无论怎样,代码开发阶段中,总是可能会有非法条件的地方,断言是一种有效的在这种情况下起到  高亮的提醒作用(在你的应该发布以前).

Basic Operators (基本操作符)

  操作符是特定的符号,可以用来检查,改变或者组合值.例如,加法操作符(+)把两个数字加在一起(例如 let i = 1+2).复杂的也有逻辑与(AND)操作符&&(例如if enteredDoorCode &&   passedRetinaScan)和自增操作符 ++i,它是给i值增1的缩写.

  Swift支持绝大部分标准C的操作符,并提升了常用代码的避免错误的能力.赋值操作符(=)没有返回值,是为了防止它与相等操作符(==)被混用.数学操作符(+,-,*,/,%等等)会检测值的  溢出,为了避免不希望的结果(当数值大小超出指定类型的储存范围).

  与C语言不同的是,Swift中,取模运算(%)可以是浮点值.Swift中也提供了范围操作符(例如a..b和a...b)表示一个范围,这在C语言中是找不到的.

  本章描述Swift的通用操作符,高级操作符在 Advanced Operators 中讲述:怎样自定义操作符和在自己定义类型上使用标准操作符.

Terminology (术语)

  单目操作符,双目操作符,三目操作符:

    •   单目操作符只操作一个目标,(例如 -a),前缀单目操作符在操作目标前出现(比如!b),后缀单目操作符在操作目标后出现(比如i++).
    •   双目操作符操作两个目标(例如2+3).
    •   三目操作符操作三个目标,与C语言一样,Swift中只有一个三目操作符,三目条件操作符( a? b:c )

  操作符操作的值,叫做运算元(或操作数),在表达式1+2中,加号+是一个双目操作符,它的两个运算元是数值1和数值2.

/********************待续......************************/