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.

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

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

时间: 2024-12-18 23:10:48

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

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

Optionals (可选类型) 当一个值可能有值,也可能没有值,这种情况你可以使用可选类型.可选类型的意思是: 有个一个值,它等于x,或者,根本没有任何值. 注意点: 可选类型的概念在C和OC中都是没有的.在OC中最相似的情况是,一个方法返回nil或者返回一个对象.OC中返回nil意思是没有合法的对象.然而,这只能针对对象,不能用在结构体,基本 数据类型,或者枚举值.对于这些类型,OC的方法只能返回固定的某个值(比如NSNotFound)来提示没有某个值.这要去方法的调用者清楚的记得返回的固定

Welcome to Swift (苹果官方Swift文档初译与注解十八)---116~122页(第二章)

Strings and Characters (字符串和字符) 字符串是一组字符组成的序列,例如“hello, world" 或 "albatross”.在Swift中,字符串使用String类型进行声明,它代表一组由Character(字符)类型组成的值的序列. String类型和Character类型提供了一种在代码中处理 (兼容Unicode) 文本的快速方式.字符串创建和管理的语法与C语言的相似,都属于轻量级并且可读性好.字符串的拼接只是简单的 使用加号(+)操作符,而且字符串

Welcome to Swift (苹果官方Swift文档初译与注解十九)---123~132页(第二章..本章节还剩6页)

Working with Characters (与字符相关) 在Swift中,String类型表示一组有序字符的值.每个字符都是一个Unicode符号.可以使用for-in循环来遍历字符串中的每个字符: for character in "Dog!??" {   println(character) } // D // o // g // ! // ?? 在Swift中也可以使用Character类型来显式的创建一个单字符的常量或者变量: let yenSign: Character

Welcome to Swift (苹果官方Swift文档初译与注解二十七)---189~198页(第四章-- 流程控制)

Switch 一个switch语句里包含一个值,并且用这个值与其他几个可能的匹配模式进行比较,然后根据成功匹配上的模式,执行相应的代码块.switch语句提供了比if语句更多的选项来相应多种潜 在的情况. 最简单的一个例子: switch some value to consider { case value 1:   respond to value 1 case value 2, value 3:   respond to value 2 or 3 default:   otherwise,

Welcome to Swift (苹果官方Swift文档初译与注解二十一)---140~147页(第三章--集合类型)

第三章 Collection Types (集合类型) 在Swift中,提供了两种集合类型用来存储一组值:数组和字典.数组有序的存储相同类型的值;字典存储无序的相同类型的值.字典可以通过唯一的标识(就是所说的键)来查询和访问. 在Swift中,数组和字典总是要清晰的标明他们存储数据的类型.这就意味着不可以将错误的类型插入到数组或字典中.同时也意味着你是明确了解你要遍历的数组或字典里面数据的类 型.在Swift中,集合要显式的声明类型来保证在开发中都会明确的知道它能处理的数据类型. 注意点: 在S

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

如果你将整型与浮点型一起使用,结果将被认为是Double类型: et anotherPi = 3 + 0.14159 // anotherPi 的类型是Double 上述代码中,3的值是没有明确说明类型,因此,根据剩余部分的浮点类型可以确定返回值为Double. Numeric Literals (数值的进制表示) 整数类型可以进行如下表示: A decimal number, with no prefix         // 十进制数值,不需要前缀符号; A binary number, w

Welcome to Swift (苹果官方Swift文档初译与注解三十七)---261~265页(第六章-- 闭包)

Inferring Type From Context 上下文类型判断 因为排序的闭包是作为一个参数传递给函数,因此Swift可以判定这个参数的类型和根据sort函数第二个参数判断返回值的类型.这个参数的类型是(String, String) -> Bool,这意味着 String,String以及Bool类型都不需要在闭包定义的时候声明.因为所有的类型都可以由系统判定.因此,返回箭头以及参数名字的括号都可以省略: reversed = sort(names, { s1, s2 in retur

Welcome to Swift (苹果官方Swift文档初译与注解三十三)---235~240页(第五章-- 函数)

Default Parameter Values (参数默认值) 在定义函数的时候,你可以给任何参数定义一个默认的值,如果定义了默认值,在调用这个函数的时候,你可以忽略这个参数. 注意: 设置参数默认值的时候,需要按照函数的参数列表最后的开始,这可以确保在调用函数的时候,即使没默认值的参数也可以按顺序的对应上,也使得函数在调用的时候更加清晰. 下面的代码例子是join函数的新版本,它使用了默认参数: func join(string s1: String, toString s2: String

Welcome to Swift (苹果官方Swift文档初译与注解二十三)---154~162页(第三章--集合类型)

Dictionaries (字典) 字典像是一个容器,它可以存放很多相同类型的值.每个值都有与之关联的唯一的键,键在字典里的作用,就像是每个值的身份证标识一样.与数组中的元素不同,字典里的每个元素没有 固定的循序.当你使用字典并且要查询一个值的时候,需要使用值的标识(key)才行.这就像是你在生活里使用一本字典来查找某个单词的定义一样. 在Swift中,字典能够存储的类型需要明确定义.这与OC中的NSDictionary 类和NSMutableDictionary 类很不同,OC中它们可以使用任