原创文章,欢迎转载。转载请注明:关东升的博客
在C、Objective-C和Java等其他语言中,整型之间有两种转换方法:
-
从小范围数到大范围数转换是自动的;
-
从大范围数到小范围数需要强制类型转换,有可能造成数据精度的丢失。
而在Swift中这两种方法是行不通的,需要通过一些函数进行显式地转换,代码如下:
let historyScore:UInt8 = 90
let englishScore:UInt16 = 130
let totalScore = historyScore + englishScore //错误
程序就会有编译错误,原因是historyScore是UInt8类型,而englishScore是UInt16类型,它们之间不能转换。
两种转换方法:
-
一种是把UInt8的historyScore转换为UInt16类型。由于是从小范围数转换为大范围数,这种转换是安全的。
代码:
let totalScore = UInt16(historyScore) + englishScore //是正确的转换方法。
-
另外一种是把UInt16的englishScore转换为UInt8类型。由于是从大范围数转换为小范围数,这种转换是不安全的,如果转换的数比较大可能会造成精度的丢失。
代码:
let totalScore = historyScore + UInt8(englishScore) //是正确的转换方法。
本例中englishScore的值是130,这个转换是成功的,如果把这个数修改为1300,虽然程序编译没有问题,但是会在控制台中输出异常信息。
整型与浮点型之间的转换
整型与浮点型之间的转换与整型之间的转换类似:
let historyScore:Float = 90.6
let englishScore:UInt16 = 130
let totalScore = historyScore + englishScore //错误
let totalScore = historyScore + Float(englishScore) //正确,安全
let totalScore = UInt16(historyScore) + englishScore //正确,小数被截掉
相关推荐
从零开始学swift,图灵原创,关东升著。基于swift2.x。2016年3月版
swift2.0语法改动学习笔记.zip,swift2.0语法改动学习笔记,阅读官方文档,playground运行实例代码,并有完整注释
swift 2.0 学习必看书籍
The Swift Programming Language 2.0 中文版 帮助大家好好学习swift2.0
最新的关于学习swift开发的书籍,讲的非常好
以下是从零开始学习SwiftUI的一些建议: 了解Swift语言基础:SwiftUI是用Swift语言编写的,因此了解Swift语言的基础知识是非常重要的。你可以从苹果官方文档、在线教程或书籍中学习Swift语言。 学习SwiftUI基本概念...
一直使用的OC开发,最近学习了Swift2.0,便使用Swift2.0开发了一个项目,项目会一直更新,项目也使用了目前较为流行的布局,项目地址:https://github.com/AlbertXYZ/HDCP,想运行项目的朋友请到项目地址查看相关步骤...
IOS开发-Swift-基础知识学习笔记
SwiftUI Basics 2.0基础全英文版本,更加详细,操作步骤,可查看性更高,操作可按照pdf一步一步操作的基础版本教程
swift 2.0版本的官方文档,优质货,干货
Swift 2.0 Cheat Sheet and Quick Reference Swift 2.0备忘单 速查表 快速手册
国外RxSwift 教程,可供自学研究~~绝对的干货,有要的下载哈。资料涉及demo要的请留言,留下联系方式
swift2.0仿微信界面,可滑动cell,自定义图片选择器
swift2.0官方开发文档,学习Swift
swift 类的继承学习笔记
NULL 博文链接:https://duchengjiu.iteye.com/blog/2184242
最新版swift2.0中文版,可以做使用手册,还有官方原版swift2.0英文文档
RxSwift Reactive Programming with Swift v2.0 pdf https://www.raywenderlich.com/276-rxswift-reactive-programming-with-swift-updated-for-rxswift-4-0
ios开发 swift语言学习资料,入门学习,简单易懂;ios开发 swift语言学习资料,入门学习,简单易懂
精选Swift相关的学习笔记与资料集合打包上传给大家,这里的笔记非常的容易看得懂,基本上学习编程的看这一堆东西就能很快上上手了,非常的实用。