zoukankan      html  css  js  c++  java
  • 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.

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

  • 相关阅读:
    css中的属性
    css初识和css选择器
    前端html的简单认识
    数据库进阶了解
    数据库索引
    pymysql模块
    数据库的多表查询
    数据库中的行操作
    数据库和表操作以及完整性约束
    数据库概述
  • 原文地址:https://www.cnblogs.com/caios/p/3798288.html
Copyright © 2011-2022 走看看