Swift语言指南(三)--语言基础之整数和浮点数
整数
整数指没有小数的整数,如42,-23。整数可以是有符号的(正数,零,负数),也可以是无符号的(正数,零)。
Swift提供了8,16,32,64位形式的有符号和无符号的整数,这些整数遵循与C语言相似的命名规则。如8位无符号整数的类型为UInt8,32位有符号整数的类型为Int32,和Swift语言的其它类型一样,这些整型命名以大写字母开头。
整数的边界
你可以通过min或max属性为每一个整数类型指定一个最小值或最大值:
let 最小值 = UInt8.min // 最小值 等于 0,类型为 UInt8
let 最大值 = UInt8.max // 最大值 等于 255,类型为 UInt8
这些属性(max和min等)的值与对应的数字宽度(size)一致(如上例中的Unit8),因此可以在表达式与其它同一类型的值一起使用。
Int
大多数情况下,你不需要选择代码中所使用的整数宽度。Swift提供了一个额外的整数类型--Int,它与当前平台的原生字长宽度(native word size)一致。
· 在 位平台,Int 与 Int32 宽度一致。
· 在 位平台,Int 与 Int64 宽度一致。
除非你需要处理特定宽度的整数,在代码中应该坚持使用 Int 表示整数。这样可以保证代码的一致性及互通性。即使是在 32 位平台,Int 也能存储 -2,147,483,648 到 2,147,483,647 之间的任意数值,这对于很多整数区间而言已经够大了。
UInt
Swift也提供了一个无符号的整数类型--UInt,它与当前平台的原生字长宽度(native word size)一致。
· 在 32 位平台,Int 与 Int32 宽度一致。
· 在 64 位平台,Int 与 Int64 宽度一致。
注意:
只有在特别需要宽度与平台原生字长一致的时才需要使用无整数类型 UInt。否则应使用 Int,即使要存储的值一定是非负数。坚持使用 Int 表示整数值有助于保证代码互通性、避免不同数据类型的转换,并且与整数类型推断相匹配,参见类型安全及类型推断(下章将会译到)。
浮点数
浮点数指有小数部分的数字,如3.14159, 0.1, 和 -273.15。
浮点数能表示比整数更宽泛的值域范围,而且,能保存比整数更大或更小的值。Swift提供了两种有符号的浮点数类型:
· Double 表示一个 64 位浮点数。在浮点数值非常大或非常精确时使用它。
· Float 表示一个 32 位浮点数。在浮点数值不需要 64 位精度时使用它。
注意:
Double 有15 个十进制有效数字的精度,而 Float 的精度只有 6 位十进制有效数字。应根据代码所需数值的特点及值域选用合适的浮点数类型。
谢谢,Swifter-QQ群:362232993,同好者进~
Fork:https://github.com/Joejo/Swift-lesson-for-chinese
Swift语言指南(三)--语言基础之整数和浮点数的更多相关文章
- Swift语言指南(一)--语言基础之常量和变量
原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swif ...
- Swift语言指南(七)--语言基础之布尔值和类型别名
原文:Swift语言指南(七)--语言基础之布尔值和类型别名 布尔值 Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false ...
- Swift语言指南(二)--语言基础之注释和分号
原文:Swift语言指南(二)--语言基础之注释和分号 注释 通过注释向自己的代码中注入不可执行的文本,作为你自己的笔记或提示.Swift编译器运行时会忽略注释. Swift的注释与C语言极其相似,单 ...
- Swift语言指南(八)--语言基础之元组
原文:Swift语言指南(八)--语言基础之元组 元组 元组(Tuples)将多个值组合为一个复合值.元组内的值可以是任何类型,各个元素不需要为相同类型(各个元素之间类型独立,互不干扰--Joe.Hu ...
- App架构师实践指南三之基础组件
App架构师实践指南三之基础组件 1.基础组件库随着时间的增长,代码量的逐渐积累,新旧项目之间有太多可以服用的代码.下面是整理的公共代码库. 2.关于加密密钥的保护以及网络传输安全是移动应用安全最关键 ...
- Swift5 语言指南(三) 快速之旅
传统表明,新语言中的第一个程序应在屏幕上打印“Hello,world!”字样.在Swift中,这可以在一行中完成: print("Hello, world!") // Prints ...
- C语言 第三章 基础编程测试与练习
1.屏幕上输出:This is a C program 2.输入两个整数,求两个数的和,如下所示:请输入第1个数:5请输入第2个数:3 3加5的和是8 3.完成华氏温度与摄氏温度间的转换,如下所示:请 ...
- Swift语言学习(三)基础操作符
操作符是用于检测.更改或者组合值的特殊符号或短语.例如,加法操作符 (+) 将两个数字加到一起 (如 let i = 1 + 2).更复杂的例子包括逻辑与操作符 && (如 if en ...
- Swift语言指南(四)--类型安全和类型推断
原文:Swift语言指南(四)--类型安全和类型推断 Swift是一门类型安全语言,类型安全语言需要代码里值的类型非常明确.如果你的代码中有部分值需要String类型,你就不能错误地传递Int. 鉴于 ...
随机推荐
- Webx框架:Valve详细解释
Valve请求,用于控制过程的操作.它采用责任设计模式链(类别似至struts拦截器).valve阀装置,阀控制水流量(网络请求)趋势. 他们阀门定义. public class MyValve im ...
- LeetCode Solutions : Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-& ...
- Team Foundation Server 2013 Update 3 下载激活
http://www.microsoft.com/zh-cn/download/details.aspx?id=43728 支持的操作系统 Windows 7 Service Pack 1, Wind ...
- c++内存泄漏处理(积累)
写c++程序时,常常会出现内存泄漏的问题,这里从网上找了一种非常麻烦的方法:假设想找到每一个cpp文件的内存泄漏,都必须在每一个cpp加上例如以下代码: #include <crtdbg.h&g ...
- kettle 4.4源代码分析Transformation
1.1. 相关的类和接口 1.1.1. JobEntryTrans 实现了JobEntryInterface的execute()方法,被job运行.由JobEntryTrans实例化Trans,并运行 ...
- Andrid 多线程下载
本文转自:http://www.2cto.com/kf/201205/130969.html 本文将介绍在android平台下如何实现多线程下载,大家都知道,android平台使用java做为开发语言 ...
- 如何获得SQL Server索引使用情况
原文:如何获得SQL Server索引使用情况 原文出自: http://www.mssqltips.com/sqlservertip/1239/how-to-get-index-usage-info ...
- 折返(Reentrancy)VS线程安全(Thread safety)
在Wiki上,折返例如,下面的定义(接) In computing, a computer program or subroutine is called reentrant if it can be ...
- [ACM] HDU 2295 Radar (二分法+DLX 重复覆盖)
Radar Problem Description N cities of the Java Kingdom need to be covered by radars for being in a s ...
- Vivado的helloword计划(一个):硬件project部分
硬件平台:ZedBoard 软件平台:vivado2013.3 本演示样例通过综合.实现,生成比特流,发送到SDK实现. 启动vivado而且创建一个项目 依据提示操作一步步创建新项目的时候记得选择R ...