Swift类型转换 和 类型别名的定义(typealias)
(一)类型转换
类型转化在 Swift 中是比较严格的,不同类型之间可以认为是不能相互转化的,只能重新产生一个对象和值,并拷贝一份。
1.0 整型数值之间的转换。
// 不同类型是不能直接相加的,这时我们就需要用到类型转换
let int8 : Int8 =
let int16 : Int16 = + Int16(int8) print(int16)
//输出 : 26
又上可见,通过转化也可以顺利得到正确的值,但是值得我们注意的是:由短整型向长整型转换是都可以成功的,且不会丢失值;而如果长整型向短整型转换时就会有可能不成功。
如:
let int32 : Int32 = let int8t : Int8 = Int8(int32) // 出错,无法转换,因为1234 已经超出Int8类型所能表示的最大数值(127)
所以 Swift 也建议我们尽量使用 Int, 而不用去明确地要使用 Int8、UInt 等类型。
2.0 整型数值和浮点型数值之间的转换
let a: Int = print(Float(a)) // 输出 10.0 let b :Float = 10.2 print(Int(b)) // 输出 10 , 所以浮点类向整型转化,会丢失小数点后的部分,会失去精度
所以我们可以得出: 精度高的向精度低得转换,会丢失,而反之则不会。
(二) 类型别名
所谓类型别名: 就是指给一个类型取一个别名。这里用到关键字 typealias
typealias myInt = Int8 print(myInt.max) //输出 127 ,这我们取里一个别名代替了系统的 Int8
Swift类型转换 和 类型别名的定义(typealias)的更多相关文章
- Swift - 06 - 数值类型转换和类型别名
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- Go语言|类型转换和类型别名
类型转换 同类型之间的转换 Go语言中只有强制类型转换,没有隐式类型转换.该语法只能在两个类型之间支持相互转换的时候使用. import "fmt" func main() { v ...
- Go类型别名与类型定义区别
类型别名和自定义类型区别 自定义类型 //自定义类型是定义了一个全新的类型 //将MyInt定义为int类型 type MyInt int 类型别名 //类型别名规定:TypeAlias只是Type的 ...
- go type别名和定义类型区别
package main import ( "fmt" ) type person struct { age int name string } func (p person)te ...
- swift:类型转换(is用作判断检测、as用作类型向下转换)
类型转换是一种检查类实例的方式,并且哦或者也是让实例作为它的父类或者子类的一种方式. 类型转换在Swift中使用is 和 as操作符实现.这两个操作符提供了一种简单达意的方式去检查值的类型或者转换 ...
- Swift语言指南(七)--语言基础之布尔值和类型别名
原文:Swift语言指南(七)--语言基础之布尔值和类型别名 布尔值 Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false ...
- Swift 类型别名
类型别名 在 Swift 语言中使用 typealias 关键字定义类型别名. typealias ShortInteger = Int8
- go语言之用户输入&类型别名&类型转换
1.用户输入 package main import "fmt" func main() { //用户输入,程序接受并输出 var v1 int //fmt.Println(&qu ...
- 定义类型别名(typedef,using)
说到类型别名,无非是给类型名(如int,char,float,double,bool)取一个比较有特殊含义的名字而已 最常用的关键莫过于 typedef 吧 typedef最常见的用法是与结构体str ...
随机推荐
- Django之用户认证auth模块
一 Django中的auth模块: 我们在使用模块之前要先导入模块: from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介 ...
- 3-scala高级
1.模式匹配 //①简单表示: sign = ch match { case '+' => 1 case '-' => -1 case '_' => 0 } //②守卫:(case中 ...
- flask 简单的语音识别
from aip import AipSpeech,AipNlp #AipNlp 为自然语言处理 """ 你的 APPID AK SK """ ...
- 对于Servlet、Servlet容器以及一个Servlet容器-Tomcat
Servlet.Servlet容器等内容讲解 转载自http://blog.csdn.net/iAm333 对于Servlet.Servlet容器以及一个Servlet容器-Tomcat这些概念讲解的 ...
- linux中ps命令
ps的参数 -C的使用 [root@centos7 ~]# ps -C nginx -o user,pid,comm USER PID COMMAND root 2697 nginx nginx 26 ...
- Thinkphp时间转换与统计的问题
1.thinkphp一般存入的都是时间戳,如果希望输入时直接显示格式化的时间呢: a. sql语句: SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUN ...
- kafka资料收集
kafka数据可靠性深度解读 http://blog.csdn.net/u013256816/article/details/71091774 kafka性能调优 http://www.kaimin ...
- gentoo virtualbox 无法启动
以前的 virtualbox 可以启动,现在无法启动. 原因是因为更新了内核,而 virtualbox 的模块没有跟着更新,所以导致无法启动. emerge --ask --oneshot @modu ...
- IntelliJ IDEA tomcat 远程Ddbug调试
在开发过程中 有时候需要idea Ddbug 服务器代码,如下是配置步骤 1.需要测试服务器开通相应端口提供远程调试 2.idea配置 最后 点击Apply OK idea配置就完成了 3.测试服 ...
- python操作浏览器及截图小结
近期做网页自动化用到内容小结 1.打开浏览器1)打开默认配置的浏览器from selenium import webdriverdriver = webdriver.Firefox()"&q ...