📜  Swift数据类型

📅  最后修改于: 2021-01-11 07:24:47             🧑  作者: Mango

Swift中的数据类型

在Swift 4编程语言中,在创建变量或常量时使用数据类型。在每种编程语言中,我们都必须使用不同类型的变量来存储数据。变量是保留的存储位置,用于存储值。这意味着当您使用变量时,将在内存中保留一些空间。

数据类型是变量可以存储在其中的数据(值)的类型。该数据可以是文本/字符串(“ JavaTpoint”)或数字(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"

它将显示一条消息,指出无法将类型'String'的值转换为类型'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位数据类型相同,系统最多可以存储2个n值。

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位平台)-922337203685477575808至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 Typical Bit Width Typical Range
Int8 1byte -127 to 127
UInt8 1byte 0 to 255
Int32 4bytes -2147483648 to 2147483647
UInt32 4bytes 0 to 4294967295
Int64 8bytes -9223372036854775808 to 9223372036854775807
UInt64 8bytes 0 to 18446744073709551615
Float 4bytes 1.2E-38 to 3.4E+38 (~6 digits)
Double 8bytes 2.3E-308 to 1.7E+308 (~15 digits)