swift-基础04-数字类型转换
来源:互联网 发布:java软件工程师查工资 编辑:程序博客网 时间:2024/05/16 07:07
在代码中,我们对所有通用的整数常量和变量使用 Int类型,即使他们知道非负。
使用 Int类型意味着整数常量和变量将易于复用,易于匹配整数面值的类型推测。
只有当必要的时候,才使用其他整数类型,
比如处理外部长度明确的数据,或者为了优化性能、内存占用等,或其他必要的优化。
使用显示长度的类型有助于发现值溢出和暗示正在使用的数据的性质。
不同整数类型的常量或变量存储的范围是不同的。
Int8 的范围是-128至127,而 UInt8的范围是 0 至 255 。
swift提供了溢出检查
如果数字不在整数类型的范围内,编译器将报告一个错误:
let cannotBeNegative :UInt8 = -1
let tooBig:Int8 =Int8.max + 1
var suibian = cannotBeNegative
var suibian1 = tooBig
suibian++
suibian1++
因为每个整数类型可以存储不同范围的值,所以,你必须根据不同的情况选择数值类型的转换。
这样可以防止隐式转换的错误,也可以表明类型转换的意图。
let twoThousand: UInt16 = 2_000
let one: UInt8 =1
let twoThousandAndOne = twoThousand + UInt16(one)
print(twoThousandAndOne)
将一个特定的数字类型转换成另一个,要用这个数字来初始化成一个需要类型的新数字。
在上面的示例中,常量 twoThousand是 UInt16 类型,然而常量 one 是 UInt8 类型。
它们不能直接加在一起,因为他们不是同一类型。
所以,这个例子中调用 UInt16(one)来创建新的 one 的值,并使用这个新值来计算:
因为这2个数现在都是 UInt16类型,所以可以相加。
输出常数(twoThousandAndOne)也被推断为UInt16类型,因为它是两个UInt16类型值的总和。
SomeType(ofInitialValue) 是 Swift 调用构造器并传入初始值的默认方法。
在语言中,UInt16有一个构造器,可以接受一个 UInt8 类型的值,
可以用 UInt8来创建一个新的UInt16。
你并不能传入任意类型的值,只能传入UInt16构造器需要的类型的值。
整数和浮点数之间的转换必须显示的指定类型
通过常量 three的值创建一个新类型 Double的值,
所以,加号两边是相同的类型。如果不转换,是不允许相加的。编译器会报错误
let three = 3
let xiaoshu = 1.1415
let pi = Double(three) + xiaoshu
print(pi)
let intpi = three + Int(xiaoshu)
print(intpi)
结合数字常量和变量的规则不同于字面量的规则。
字面量3可以直接和字面量1.1415相加,因为数字字面量本身没有明确的类型。
在编译器求值的时候会推测类型
- swift-基础04-数字类型转换
- Swift数字类型之间的转换
- Swift语法基础:9 - Swift的字面量, 类型转换, 类型别名
- Swift类型转换
- 18.Swift-类型转换
- Swift-类型转换
- swift 类型转换
- Swift 对象类型转换
- swift 对象类型转换
- Swift-类型转换
- swift 类型转换
- 细说Swift类型转换
- swift-9 类型转换
- Swift类型转换
- Swift AnyObject 类型转换
- swift-类型转换
- Swift 类型转换
- Swift基础类型
- SDUT 数据结构实验之查找四:二分查找
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 堆栈练习
- 解决ScrollView嵌套ListView显示不完全和滑动冲突的问题
- JAVA 简单使用JDBC实现连接数据
- swift-基础04-数字类型转换
- JavaWeb Session问题整理
- 队列练习
- 华为oj 句子逆序
- 设计模式系列(十三)迭代器模式(Iterator Pattern)
- python windows下的安装配置以及django的学习经验
- LCA+最小生成树 Codeforces609E Minimum spanning tree for each edge
- 2015-12-20 FFC
- DIV+CSS实操七:中文系内容模块控制文本不换行和超出指定宽度后用省略号代替