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. 鉴于 ...
随机推荐
- GotoTest
循环标签跳出循环 public class GotoTest { public static void main(String[] args) { int[][] array={ {1,20,3}, ...
- php方法综述除去换行符(PHP_EOL使用变量)
一个小包裹,事实上,不同的平台具有不同的实现.为什么要这样.它可以是一个世界是多样的. 最初unix与世界把它包/n取代,但windows为了体现自己的不同.要使用/r/n,更有意思的是,mac随着/ ...
- Effective C++ -- 继承和面向对象设计
32.确保你的public继承了模is-a关系 public继承意味着is-a关系(里氏替换原则),一切适用于基类也适用于派生类. 矩形继承正方形问题: 可实施与矩形的操作无法实施与正方形 在编程领域 ...
- Android获取本机IP地址
一.概述 习惯了Linux下的网络编程,在还没用智能机之前就一直想知道怎么得到手机的IP地址(玩智能机之前我是不搞手机应用的).好了,得知Android是基于Linux内核的,那么不就可以利用之前学的 ...
- 使用jprobe建设镜面层叠的原则和见解
忽然想起的回忆,那是2007上周五在冬季,我看我的老湿调试Linux堆IP层,只看到他改变路由查找的逻辑,然后直接make install上的立竿见影的效果有点,我只知道,,这种逻辑必须再次更改编译内 ...
- MEF初体验之十一:查询组合容器
查询组合容器 组合容器暴露了几个get exports的重载方法和导出对象和对象集合.你需要注意下面的行为: 当请求单个对象实例时,如果未发现导出,一个异常将被抛出 当请求单个对象实例时,如果发现超过 ...
- LVM 命令集总结(转)
PV 命令 下面的命令是在与物理卷相关的操作中最常用的命令: lsdev 列出ODM中的设备. chdev 修改设备的特征. mkdev 增加一个设备到系统中. chpv 修改物理卷的状态. lspv ...
- WPF学习(8)数据绑定
说到数据绑定,其实这并不是一个新的玩意儿.了解asp.net的朋友都知道,在asp.net中已经用到了这个概念,例如Repeater等的数据绑定.那么,在WPF中的数据绑定相比较传统的asp.net中 ...
- Android视频通话Java代码
近期学习Android平台下跨平台音视频通信开发,尽管网上有非常多开源项目供我们參考学习.但音视频效果非常一般,还有非常多不稳定的因素,毕竟是开源嘛.在国内我找到了一个比較好音视频通信解决方式(百 ...
- AE 先进的视频画面 快速释放 慢动作
视频画面细腻,或快速释放.慢速播放视频.其实很easy.在使用图层time中间Enable Time remapping能够.快捷键ctrl+alt+T债券,我无法使用,我没有深究. 在这一点上,在视 ...