清风注解-Swift程序设计语言:Point11~15
目录索引
Point 11.
数值型字面量
代码事例:
let decimalInteger = // 十进制的17
let binaryInteger = 0b10001 // 二进制的17
let octalInteger = 0o21 // 八进制的17
let hexadecimalInteger = 0x11 // 十六进制的17
注解:
- 整数字面量可以被写作:十进制数,没有前缀;二进制数,前缀是 0b;八进制数,前缀是 0o;十六进制数,前缀是 0x。
- 浮点数字面量可以是十进制(没有前缀)或者是十六进制(前缀是 0x)。
- 浮点数字面量的小数点两边必须有至少一个十进制数字(或者是十六进制的数字)。
- 十进制浮点数字面量有一个可选的指数,通过大写或者小写的 e 来指定。
- 十六进制浮点数字面量必需包含指数,通过大写或者小写的 p 来指定。
let decimalDouble = 17.2e0 // 十进制浮点数的17.2
let hexadecimalDouble = 0x11.2p0 // 十六进制浮点数的17.125- 如果一个十进制数的指数为 exp,那这个数相当于基数和 10^exp 的乘积。
- 如果一个十六进制数的指数为 exp,那这个数相当于基数和 2^exp 的乘积。
- 整数和浮点数字面量可以包括额外的格式(0 和下划线)来增强可读性,这些格式(0 和下划线)并不会影响字面量的实际值。
let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1
Point 12.
数值型类型转换
代码事例:
let twoThousand: UInt16 = 2_000
let one: UInt8 =
let twoThousandAndOne = twoThousand + UInt16(one)
注解:
- 通常来讲,即使代码中的整数常量和变量已知非负,也请使用 Int 类型。
- 使用默认的整数类型能保证整数常量和变量可以直接被复用,并且可以匹配整数类字面量的类型推断。
- 使用显式指定长度的类型可以及时发现值溢出并且可以暗示正在处理特殊数据。
- 不同整数类型的变量和常量可以存储不同范围的数字。
- 如果数字超出了常量或者变量可存储的范围,编译的时候会报错。
- 由于每种整数类型可以存储不同范围的值,所以必须根据不同情况选择性使用数值型类型转换。
- 选择性使用类型转换的方式,可以预防隐式转换的错误并让你的代码中的类型转换意图变得清晰。
- 要将一种数字类型转换成另一种,要用当前值来初始化一个期望类型的新数字,这个数字的类型就是目标类型。
- 整数和浮点数的转换必须显式指定类型。
let three =
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine- 浮点数转换为整数时,浮点值(小数部分)会被截去。
Point 13.
类型别名
代码事例:
typealias AudioSample = UInt16 // UInt16的类型别名被定义为AudioSample
var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound 现在是 0
注解:
- 类型别名就是给现有类型定义另一个名字。
- 使用 typealias 关键字来定义类型别名。
- 定义了一个类型别名之后,可以在任何能使用原始名的地方使用别名。
Point 14.
布尔值
代码事例:
let orangesAreOrange = true // 值为真
let turnipsAreDelicious = false // 值为假
注解:
- 布尔值指逻辑上的真或假。
- Swift 有两个布尔常量,true 和 false。
- 如果在需要使用 Bool 类型的地方使用了非布尔值,Swift 的类型安全机制会报错。
Point 15.
元组
代码事例:
// http404Error 的类型是 (Int, String),值是 (404, "Not Found")
let http404Error = (, "Not Found")
注解:
- 元组是把多个值组合成一个复合值。
- 元组内的值可以是任意类型,并不要求是相同类型,并且类型的顺序也是任意的。
- 元组的内容可以分解成单独的常量和变量,然后你就可以正常使用它们了。
let (statusCode, statusMessage) = http404Error
// 输出 "The status code is 404"
println("The status code is \(statusCode)")
// 输出 "The status message is Not Found"
println("The status message is \(statusMessage)")- 如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记。
let (justTheStatusCode, _) = http404Error
// 输出 "The status code is 404"
println("The status code is \(justTheStatusCode)")- 可以通过下标来访问元组中的单个元素,下标从零开始。
// 输出 "The status code is 404"
println("The status code is \(http404Error.0)")
// 输出 "The status message is Not Found"
println("The status message is \(http404Error.1)")- 可以在定义元组的时候给单个元素命名,并可以通过元素命名来获取元素的值。
let http200Status = (statusCode: , description: "OK")
// 输出 "The status code is 200"
println("The status code is \(http200Status.statusCode)")
// 输出 "The status message is OK"
println("The status message is \(http200Status.description)")- 元组可以作为函数的返回值使用。
作者:清风抚柳 (DashGeng)
出处:http://www.cnblogs.com/dashgeng/
清风注解-Swift程序设计语言:Point11~15的更多相关文章
- 清风注解-Swift程序设计语言
前言 Apple 发布了全新的 Swift 程序设计语言,用来开发 iOS 和 OS X 平台的应用程序.其目的不言而喻:就是为了给老迈的 Objective-C 一个合适接班人!因此,不难预见,未来 ...
- 清风注解-Swift程序设计语言:Point6~10
目录索引 清风注解-Swift程序设计语言 Point 6. 输出常量和变量 代码事例: // 输出的内容会在最后换行 println("hello, world") // 输出的 ...
- 清风注解-Swift程序设计语言:Point1~5
目录索引 清风注解-Swift程序设计语言 Point 1. Swift 风格的"Hello, world" 代码事例: println("Hello, world&qu ...
- 《Swift程序设计语言》中国翻译和学习笔记page23
·<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页開始 · 页 1 本页主 ...
- C程序设计语言练习题1-5
练习1-5 修改温度转换程序,要求以逆序(即按照从300度到0度的顺序)打印温度转换表. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() ...
- C程序设计语言(第二版)习题:第一章
第一章虽然感觉不像是个习题.但是我还是认真去做,去想,仅此而已! 练习 1-1 Run the "hello, world" program on your system. Exp ...
- awk程序设计语言之-awk基础
awk程序设计语言之-awk基础 http://man.linuxde.net/ 常用工具命令之awk命令 awk是一种编程语言,用于在Linux/Unix下对文本和数据处理.数据可以来自标准输入(s ...
- 《C++程序设计语言(十周年纪念版)》【PDF】下载
<C++程序设计语言(十周年纪念版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382171 内容简介 <C++程序设计 ...
- 《C++程序设计语言(英文第四版)》【PDF】下载
<C++程序设计语言(英文第四版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382177 内容简介 本书是C++领域经典的参 ...
随机推荐
- 转 jquery插件--241个jquery插件—jquery插件大全
241个jquery插件—jquery插件大全 jquery插件jqueryautocompleteajaxjavascriptcoldfusion jQuery由美国人John Resig创建,至今 ...
- Android studio运行时报错,方法,类找不到,或者JVM内存溢出解决方案
Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessExceptio ...
- Java值创建线程的两种方式对比
在Java中创建线程的方式有两种,第一种是直接继承Thead类,另一种是实现Runable接口.那么这两种方式孰优孰劣呢? 采用继承Thead类实现多线程: 优势:编写简单,如果需要访问当前线程,只需 ...
- AWS之EC2远程登录
网上有丰富的免费资源,Amazon的云主机就是开发者和学习者很好的选择. 但你得有一张信用卡,注册个AWS(Amazon web service)账号,就可以有自己公网ip的服务器了!!! 最近在折腾 ...
- git创建与合并分支
创建与合并分支 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分 支,即master分支.HEAD严格来 ...
- 宣布正式发布 Windows Azure 移动服务、网站及持续的服务创新
我们努力创新,向开发人员提供多样化平台以构建最好的云应用程序并在第一时间提供给世界各地的客户.许多新应用程序都属于"现代化应用程序",即始终基于 Web,且可以通过各种移动设备进行 ...
- 使用扩展名获取mimetype
在Android中很多时候我们需要计算出文件的mimetype,而我们通常的思路就是通过扩展名来获取对应的mimetype,而如果自行处理,将维护一个比较大的映射表,而实际上大可不必,Android提 ...
- 一个利用扩展方法的实例:AttachDataExtensions
扩展方法是C# 3.0(老赵对VB不熟)中最简单,也是最常用的语言特性之一.这是老赵自以为的一个简单却不失经典的实例: [AttributeUsage(AttributeTargets.All, Al ...
- linux下创建可引导的U盘系统,使用dd命令进行Linux的ghost
1,通过iso创建可引导的U盘系统. 1.0,格式化U盘为FAT32格式 linux下能够使用命令: mkfs.vfat U盘的设备路径 比如: mkfs.vfat /dev/sdb 当中U盘的路径能 ...
- UVALive 3635 Pie 切糕大师 二分
题意:为每个小伙伴切糕,要求每个小盆友(包括你自己)分得的pie一样大,但是每个人只能分得一份pie,不能拿两份凑一起的. 做法:二分查找切糕的大小,然后看看分出来的个数有没有大于小盆友们的个数,它又 ...