Swift学习——Swift基础详解(八)

Assertions    断言

可选可以让你判断值是否存在,你可以在代码中优雅地处理值缺失的情况。然而,在某些情况下,如果值缺失或者值并不满足特定的条件,你的代码可能并不需要继续执行。这时,你可以在你的代码中触发一个断言(assertion)来结束代码运行并通过调试来找到值缺失的原因。

Debugging with Assertions    使用断言进行调试

断言会在运行时判断一个逻辑条件是否为true。从字面意思来说,断言“断言”一个条件是否为真。你可以使用断言来保证在运行其他代码之前,某些重要的条件已经被满足。如果条件判断为true,代码运行会继续进行;如果条件判断为false,代码运行停止,你的应用被终止。

如果你的代码在调试环境下触发了一个断言,比如你在 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为true的时候代码运行才会继续,也就是说,当age的值非负的时候。如果age的值是负数,就像代码中那样,age >= 0为false,断言被触发,结束应用。

断言信息不能使用字符串插值。断言信息可以省略,就像这样:

assert(age >= 0)

When to Use Assertions   什么时候使用断言

当条件可能为假时使用断言,但是最终一定要保证条件为真,这样你的代码才能继续运行。断言的适用情景:

- 整数的附属脚本索引被传入一个自定义附属脚本实现,但是下标索引值可能太小或者太大。

- 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行。

- 一个可选值现在是nil,但是后面的代码运行需要一个非nil值。

好的,上面的就是Swift学习第一章的全部内容了,基础部分----The Basics

下面是第一章内容的全部翻译文章链接:

Swift学习——Swift基础详解(一)

Swift学习——Swift基础详解(二)

Swift学习——Swift基础详解(三)

Swift学习——Swift基础详解(四)

Swift学习——Swift基础详解(五)

Swift学习——Swift基础详解(六)

Swift学习——Swift基础详解(七)

Swift学习——Swift基础详解(八)

时间: 2024-10-13 05:51:28

Swift学习——Swift基础详解(八)的相关文章

Swift语言的基础详解

1.1.关于swift · Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采用安全的编程模式,增加了现代功能使 编程更容易.更灵活.更有趣.Swift 以成熟且备受宠爱的 Cocoa 和 Cocoa Touch 框架为 支撑,这是一个重新构想软件开发的机会. · 支持Playground,它允许程序实时预览,无需频繁创建和运行APP · 简洁, 安全, 容易, 灵活, 高效

Swift学习之访问控制详解

本文和大家分享的主要是swift 中访问控制相关内容,一起来看看吧,希望对大家 学习swift有所帮助. 访问控制对访问你的其他代码源文件和模块部分进行了约束.这个特性允许你隐藏你的代码实现,并且指定通过其可以访问和使用该代码的优选接口. class , structure  和  enumeration  都可以指定访问级别,当然, property , method , initializer  和 属于这里类型的  subscript . protocol 可以限制到某个上下文,全局变量,

Swift学习——Swift基础详解(四)

A:小儿编程很不好! B:多半是不爱学,从看英文版开始,让你爱上编程! Type Aliases    类型重定义(typedef) Swift中重定义类型的关键字是typealias,至于怎么用,应该不必多说了,看例子: typealias AudioSample = UInt16 //定义了一个类型名称AudioSample,代表UInt16类型 var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound is now 0 Boo

Swift学习——Swift基础详解(一)

注:由于基础部分在Swift Tour 中已经大体的说明了,所以在详解中不会达到100%的原文释义 Constants and Variables  常量和变量 常量和变量都需要声明名称和类型(作为程序员,这些基础也就不说了),常量一次赋值不能改变,变量的值可以改变 Declaring Constants and Variables   声明常量和变量 常量和变量在使用之前必须要声明,使用let关键字定义常量,var关键字定义变量 下面的例子可以用来定义用户登录的时候最大的尝试次数: let m

Swift学习——Swift基础详解(二)

上节说了没有营养的变量和常量,这玩意,都差不多,自己稍微看下就好了 Integers    整型 整数就是整数了,没有小数,整数有符号(+,-,0)或者无符号(0,+) Swift提供了8,16,32,64位的有符号和无符号的整数,命名使用C的方式,比如,8位无符号的整型UInt8,32位有符号的整型就是Int32 Integer Bounds    整型范围 可以使用min 和 max获取整数类型的最大值和最小值 let minValue = UInt8.min // minValue is

Swift学习——Swift基础详解(三)

小葵花课堂继续开讲 Numeric Literals    数字文本 数字文本有以下几种写法: A decimal number, with no prefix A binary number, with a 0b prefix An octal number, with a 0o prefix A hexadecimal number, with a 0x prefix 十进制数,无前缀:二进制数,0b前缀:八进制数,0o前缀:十六进制数,0x前缀 论数字17的N种表现形式: let deci

Swift学习——Swift基础详解(六)

Optionals    选配 选配(好像不是这么翻译的)适用于那些值可能为空的情况,一个选配有两种情况:存在值并且等于x,或者值不存在. 选配的概念在OC和C里面并没有,在OC中最接近的概念就是:OC中的返回值为对象的函数,当对象不存在的时候,可以返回nil,但是nil只能代表对象,不可以代表基础类型或者结构体和枚举类型.OC中使用NSNotFound表示值不存在.在Swift中,不需要使用其他的类型表示不存在的值. 举个例子: 在Swift中,String类型有一个方法叫做toInt,但是并

Swift学习——Swift基础详解(五)

上回书说道:灰常灰常基本的数据类型 下面咱们来点高级的: Tuples    元组 元组存储一对键值,并且没有类型限制 let http404Error = (404, "Not Found") // http404Error is of type (Int, String), and equals (404, "Not Found") 书上废话一堆,反正元组就是这么写,上面的例子还是(Int,String)类型的元组,而且元组里面的类型随便你定义 也可以将元组的变

swift学习_xcode基础学习

android L已经在开发大会上公布了, 技术得跟上时代的潮流, 一心想在移动互联网中发展,只好努力学习 html+ js  ,  oc ! 服务器运维我就不写了,就算是自己的生活记录.android 说真心话, 一直想写,结果发现自己很喜欢写得连续点,就像仙剑一样, 应该是能让人回味的那种,文笔不好 , 就先这些基础开始练习吧. 发呆中..... 上一个教程中 xcode6  安装后,打开xcode开始界面,我突然发现 get start playground , 一直在犹豫他是神马....