Swift3.0教程(二)-基本数据类型

2024-06-10 00:32

本文主要是介绍Swift3.0教程(二)-基本数据类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

整形

整形是指不包括小数的数字类型,包括有符号数和无符号数,比如32,-20都是整形。swift提供了8位,16位,32位和64位的有符号和无符号的整数。他们的命名和C语言差不多,UInt8是无符号8位整形,32位有符号整形是Int32等等,每一个整形都有特定的名字。

整数边界

整数都有一个最大值和最小值,可以通过minmax属性获取最大值和最小值。

let minValue = UInt8.min  // 最小值 0
let maxValue = UInt8.max  // 最大值是255

Int

大多数情况下,我们在使用的时候直接使用Int类型就好了,Int的大小和当前操作系统有关,如果是32位的操作系统,它的位数和Int32一样,如果是64位的操作系统,它的位数和Int64一样。所以我们在使用的时候直接使用Int就好。

UInt

同样,如果是无符号类型,直接使用UInt就好,UInt的大小也是和当前操作系统有关,如果是32位的操作系统,它的位数和UInt32一样,如果是64位的操作系统,它的位数和UInt64一样。

浮点型

比起整数,浮点数有更高的精度,所以它可以存储比Int更多的数。Swift里面提供的浮点数主要有以下两个。32位浮点数的的使用Float,64位浮点数的使用Double

类型安全和类型推断

Swift是一个类型安全语言,类型安全语言鼓励开发者把变量或是常量的类型写的清晰名了。比如一个String的类型,开发者不应该传递一个Int类型。其实Xcode会自定进行类型检查,如果类型不相符会给出错误提示。
不过如果开发者没有给变量或是常量定义具体的类型。系统会根据赋值数据进行类型推断。

let name = "dog"

系统会自动推断出name的类型为String

let myInt = 30

系统可以推断出myInt类型为整形。
如果使用了一个表达式,系统也可以自动推断出类型来,比如。

let pi = 3 + 0.14159

系统推断pi为Double

进制

  • 十进制数不需要加前缀
  • 二进制数以0b为前缀
  • 八进制数以0o为前缀
  • 十六进制数以0x为前缀
let decimalInteger = 17
let binaryInteger = 0b10001       // 17 的二进制
let octalInteger = 0o21           // 17 八进制
let hexadecimalInteger = 0x11     // 17 十六进制

幂运算,十次方使用e

1.25e2=1.25102

幂运算,二次方使用 p
0xFp2=1522=60

为了数字看起来易读可以使用_标注数字.官方文档示例如下

let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1

类型转换

在使用整形类型的时候,需要注意的是不能出现使用无符号整型存储负数或是存储大于或小于类型临界值的情况。比如

//使用无符号整形存储负数将会报错
let cannotBeNegative: UInt8 = -1
//存储大于或小于类型值的数就会报错
let tooBig: Int8 = Int8.max + 1
let tooSmall: Int8 = Int8.min - 1

两个类型不同的变量或是常量都是不能叠加的,必须把他们转化到相同的数据类型。

let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoThousand + UInt16(one)

整形转化为浮点型也是非常容易的。

let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine

总结:不同类型不能相加,需要类型转化。转化用类型(待转化的数据)这样的格式即可。

类型别名

类型别名就是给类型起一个新的名字,使用的时候使用自己定义的别名即可。类型所能使用的东西别名都可使用,比如类型所能存储的最小值。

typealias AudioSample = UInt16
var maxAmplitudeFound = AudioSample.min

布耳型

定义一个基本的布尔类型很容易。

let zeroIsZero = true
let zeroIsOne = false

不过因为swift语言是安全的语言,所以语法比起OC规范了很多,在OC里面可以直接把数字或是0赋值给布耳型。这在swift里是不允许的。下面的写法是错误。

let isOne = 1
if  isOne {}

不过在if里进行值的比较是允许的。

let isOne = 1
if  isOne == 1 {}

这篇关于Swift3.0教程(二)-基本数据类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046735

相关文章

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根