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 ...
随机推荐
- window自带的公式面板
如何使用Windows数学输入面板生成数学公式 数学输入面板是一个Windows自带的数学公式编辑软件,该软件最大的特点就是可以简单方便地写出数学公式.本文主要探讨该软件的一些基本用法. 工具/原料 ...
- [Ahoi2013]差异(后缀自动机)
/* 前面的那一坨是可以O1计算的 后面那个显然后缀数组单调栈比较好写??? 两个后缀的lcp长度相当于他们在后缀树上的lca的深度 那么我们就能够反向用后缀自动机构造出后缀树然后统计每个点作为lca ...
- windows设置电脑的固定IP
当有需要的人往往想要固定自己的IP进行测试,在我通过手机代理来录制测试带宽时不想因为IP经常变更而影响到我的测试 因此,我想要固定自己的IP 1.想要固定IP说明自己的IP设置成了自动获取方式,这样连 ...
- ubantu windons 双系统 转自百度经验贴(在选择时区那一块,记得把网线拔了,不然会黑屏)
Win7下U盘安装Ubuntu14.04双系统步骤详解 | 浏览:38877 | 更新:2014-05-24 18:09 | 标签:u盘 笔 者由于工作需要使用LINUX系统,之前通过Win7上的VM ...
- uiautomator 代码记录 : 随机发送短信
package sms_test; import java.lang.*; import java.util.Random; import javax.microedition.khronos.egl ...
- python生成器异步使用
import dis,time # 反汇编 import threading def request(): print('start request') v = yield print(v) def ...
- 用网线直连的两台PC上的虚拟机通过网线通信的配置
Configure the ROS Networks: Quick Reference: http://blog.csdn.net/sonictl/article/details/46986565#t ...
- python3封装Api接口
注:本篇的代码和语法基于Python3.5环境,下面将用到Python 的Flask框架 封装接口主要讲静态接口(无参数传入).动态接口(有参数传入,不同参数返回的信息不同).针对动态接口有三种传参方 ...
- 学习excel的使用技巧一空格替换为0
问题1 把excel表格中的空格 填充为0 方法1 选中CDE列 CRTL+F 查找空 替换为0 方法2 选中CDE列 CRTL+G 打开定位 点击条件定位 选择空值 点击确定 然后在 ...
- 《算法》第三章部分程序 part 6
▶ 书中第三章部分程序,加上自己补充的代码,包含双向索引表.文建索引.稀疏向量类型 ● 双向索引表 package package01; import edu.princeton.cs.algs4.S ...