Swift - 数据类型

Swift - 数据类型 首页 / Swift入门教程 / Swift - 数据类型

在以任何一种编程语言进行编程时,您需要使用不同类型的变量来存储信息,变量是用于存储值的保留内存位置。

内置类型

Swift 4为程序员提供了丰富的内置以及用户定义的数据类型。声明变量时,以下类型的基本数据类型最常见-

  • Int或UInt    -  用于整数,更具体地说,可以使用Int32,Int64定义32或64位有符号整数,而UInt32或UInt64定义32或64位无符号整数变量。如42和-23。

  • Float             -  用于表示32位浮点数和小数点后的数字。如,3.14159、0.1和-273.158。

  • Double         -  用于表示64位浮点数,当浮点值必须非常大时使用。如,3.14159、0.1和-273.158。

  • Bool              -  这表示布尔值,它是true或false。

  • String           -  这是字符的有序集合。如,"Hello,LearnFK!"

  • Character    -  这是一个单字符字符串文字。如," C"

  • Optional      -  这表示可以保存值或不包含值的变量。

  • Tuples          -  用于将多个值分组为单个"复合值"。

下表显示了变量类型,将值存储在内存中需要多少内存以及此类变量中可以存储的最大值和最小值是多少。

类型典型位宽典型范围
Int8 1byte -127至127
UInt8 1byte 0到255
Int32 4bytes -2147483648至2147483647
UInt32 4bytes 0至4294967295
Int64 8bytes -9223372036854775808至9223372036854775807
UInt64 8bytes 0到18446744073709551615
Float 4bytes 1.2E-38至3.4E + 38(〜6位数字)
Double 8bytes 2.3E-308至1.7E + 308(〜15位数字)

类型别名

您可以使用 typealias 为现有类型创建新名称,这是使用typealias定义新类型的简单语法-

typealias newname=type

如,以下行指示编译器 Feet 是 Int 的另一个名称-

typealias Feet=Int

现在,以下声明完全合法,并创建了一个名为distance的整数变量-

typealias Feet=Int
var distance: Feet=100
print(distance)

运行上述程序时,得到以下输出。

100

类型安全

Swift 4是一种类型安全的语言,这意味着如果您的代码中的一部分需要一个String字符串,则不能错误地将其传递给Int整数类型。

由于Swift 4是类型安全的,因此它在编译代码时执行类型检查,并将所有不匹配的类型标签为错误。

var varA=42
varA="This is hello"
print(varA)

当我们编译上述程序时,它会产生以下编译时错误。

main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA="This is hello"

类型推断

通过类型推断,编译器只需检查您提供的值,即可在编译代码时自动推断出特定表达式的类型, Swift 4使用类型推导来得出适当的类型,如下所示。

//varA 被推断为 Int 类型
var varA=42
print(varA)

//varB 被推断为 Double 类型
var varB=3.14159
print(varB)

//varC 也被推断为 Double 类型
var varC=3 + 0.14159
print(varC)

运行上述程序时,我们得到以下输出-

42
3.14159
3.14159

BOOL类型示例

let result:Bool = true
print(result)

输出:

true

整数类型示例

var highScore:Int = 50
print(highScore)
highScore = 40
print(highScore)

输出:

50
40

INT8类型示例

INT8数据类型可以存储正极和负少数。其默认值为0,大小为8位,范围从-128到127变化。

它可以存储28个值意味着从-128到127的值包括0。

无涯教程网

var highScore:Int8 = -128//ok
highScore = 127 //ok
highScore = 128//发生错误,因为溢出了
highScore = -129 //同上

您可以使用.min和.max检查Int8数据类型可以存储的最高和最低值。

.min和.max Int8类型示例

print(Int8.min)
print(Int8.max)

输出:

-128
127

浮动类型示例

浮动数据类型可以存储十进制和分数。其默认值为0.0,大小32位和范围从1.2 * 10-38变为3.4 * 1038(〜6位)。

let highScore:Float = 3.1416
print(highScore)

输出:

3.1416

双精度类型示例

Double数据类型可以将小数或小数存储为Float数据类型,但比Float支持的小数点大。

其默认值为0.0,大小:64位,范围从2.3 * 10-308到1.7 * 10308(〜15位)

let highScore:Double = 3.1416
print(highScore)

输出:

3.1416

字符类型示例

字符数据类型可以存储单个字符串文字。它用于添加英语以外的表情符号或语言。

let playerName:Character = "J"
let playerNameWithUnicode:Character = "\u{134}"
print(playerName)
print(playerNameWithUnicode)

输出:

J
Ĵ

字符串类型示例

字符串数据类型可以存储字符集合。它是值类型,其默认值是“"(空字符串)。

Swift可以帮助您使用一些特殊的转义序列在字符串中使用它们。例如,

\0 (null character),
\\(a plain backslash \),
\t (a tab character),
\v (a vertical tab),
\r (carriage return),
\" (double quote),
\' (single quote), and
\u{n} (unicode code point, n is in hexadecimal).  
let playerName = "Jack"
let playerNameWithQuotes = "\"Jack\""
let playerNameWithUnicode = "\u{134}ack"
print(playerName)
print(playerNameWithQuotes)
print(playerNameWithUnicode)

输出:

Jack
"Jack"
Ĵack

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

互联网人的英语私教课 -〔陈亦峰〕

微信小程序全栈开发实战 -〔李艺〕

Web安全攻防实战 -〔王昊天〕

etcd实战课 -〔唐聪〕

Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕

李智慧 · 高并发架构实战课 -〔李智慧〕

大厂广告产品心法 -〔郭谊〕

徐昊 · AI 时代的软件工程 -〔徐昊〕

云原生基础架构实战课 -〔潘野〕

好记忆不如烂笔头。留下您的足迹吧 :)