本文概述
在Swift 4编程语言中, 在创建变量或常量时使用数据类型。在每种编程语言中, 我们都必须使用不同类型的变量来存储数据。变量是保留的存储位置, 用于存储值。这意味着当你使用变量时, 将在内存中保留一些空间。
数据类型是变量可以存储在其中的数据(值)的类型。此数据可以是文本/字符串(” srcmini”)或数字(12.34), 也可以是位(0和1)。我们必须定义数据类型以确保仅存储定义的数据类型。
例如,
假设你必须将学生的数据存储在需要存储其姓名和分数的位置。标记是一个数字(即70), 名称是一个字符串(即Alex), 因此, 你需要创建两个变量或常量来存储数据。
在Swift 4中, 你可以通过将变量和数据类型声明为:
var Marks:Int = 70
var Name:String = "Alex"
在这里, 我们声明了存储值70的Int类型的Marks变量和存储值Alex的String类型的Name变量。
如果使用以下语法, 则会出现编译时错误:
var Score:Int = "Alex"
它将显示一条消息, 指出无法将类型”字符串”的值转换为类型” Int”。
它显示了一个数字只能以Int数据类型存储, 而不能以String数据类型存储。
数据类型的大小
数据类型的大小指定可以存储在给定变量或常量中的数据的大小。数据类型的大小以位为单位, 并且可以存储最多2位的值。
因此, 大小为1位的数据类型最多可以存储21个= 2个值:0或1。
0 -> a or 0
1 -> b or 1
数据类型大小为2位, 最多可以存储22 = 4个值。分别是(00, 01, 10, 11)。它可以表示为:
00 -> a or 0
01 -> b or 1
11 -> c or 2
10 -> d or 3
与n位数据类型相同, 系统最多可以存储2n个值。
Swift 4数据类型
最常见的Swift 4数据类型是:
布尔数据类型
- Bool数据类型只能存储两个值true或false。
- 其默认值为False。
- 通常在if-else语句中使用。
布尔数据类型示例:
let result:Bool = true
print(result)
输出
true
整数数据类型
- 整数数据类型可以存储正数和负数, 包括零且无小数。
- 其默认值为0。
- 它的大小取决于平台类型, 可以是32位或64位。
- 范围:-2, 147, 483, 648至2, 147, 483, 647(32位平台)
-9223372036854775808至9223372036854775807(64位平台 - 整数数据类型还有许多其他变体, 例如UInt, Int8, Int16等, 如果要专门指定存储类型, 可以使用它们。
整数数据类型示例:
var highScore:Int = 50
print(highScore)
highScore = 40
print(highScore)
输出
50
40
说明:在上面的程序中, 我们声明了一个Int类型的变量highScore, 然后将其赋值为50。它提供50的输出。
后来, 我们使用赋值运算符highScore = 40将值更改为40, 因此它提供了输出40。
Swift中还有更多Int数据类型的变体。
Int8数据类型
Int8数据类型可以存储正数和负数。其默认值为0, 大小为8位, 范围从-128到127。
它可以存储28个值, 表示-128到127之间的值, 包括0。
var highScore:Int8 = -128//ok
highScore = 127 //ok
highScore = 128 // error occurred
highScore = -129 //error occurred
你可以使用.min和.max检查Int8数据类型可以存储的最高和最低值。
.min和.max Int8数据类型的示例
print(Int8.min)
print(Int8.max)
输出
-128
127
UInt数据类型
UInt(无符号整数)只能存储无符号数字(正数和零)。其他剩余属性与Integer数据类型的含义相同:
- 默认值:0
- 大小:32/64位取决于平台类型。
- 范围:0至4294967295(32位平台)
0至18446744073709551615(64位平台)
浮动数据类型
浮点数据类型可以存储小数和小数。其默认值为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
表格形式的数据类型变量的范围
Type | 典型位宽 | 典型范围 |
---|---|---|
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位数字) |