本系列是为有其它语言编程经验的人准备的一个简明教程,浏览本系列前,最好有 Java 或 C/C++ 这些语言中一门的基础。基于此,本系列主要会比较 Swift 和其它语言的异同,从而提高学习的效率。 当然,作为简明教程,本系列文章也不试图完全覆盖 Swift 语言的所有细节,这些留给读者去研读 Swift 官方语言手册。 作为开篇,本文先介绍 Swift 内置的数据类型。

内置类型汇总

首先,我们通过一张思维导图来了解一下Swift的内置数据类型

可以看到,Swift 中的内置类型和其它高级语言基本相同。相对于C/C++, Java,不常见的是 元组类型 和 可选类型(在Java 8以后也有该类型)。 每种类型名以大写字母开头

接下来,就展示一下每种类型(元组和可选除外,后面会单挑讲)的要点

整型(Int)

包括有符合和无符号两类,每类中又可以根据存储所用的长度分成更细的几类,列表如下:

无符号整型

1
2
3
4
5
6
7
8

var a1 = UInt8.max //8位无符号整型数的最大值 255

var a2 = UInt16.max //16位无符号整型数的最大值 65535

var a3 = UInt32.max //32位无符号整型数的最大值 4294967295

var a4 = UInt64.max //64位无符号整型数的最大值 18446744073709551615

带符号整型

1
2
3
4
5
6
7
8
var maxInt8 = Int8.max     //127
var mimInt8 = Int8.min //-128
var maxInt16 = Int16.max //32767
var minInt16 = Int16.min //-32768
var maxInt32 = Int32.max //2147483647
var minInt32 = Int32.min //-2147483648
var maxInt64 = Int64.max //9223372036854775807
var minInt64 = Int64.min //-9223372036854775808

我们也可以使用 Int 或 UInt 来直接定义整型数据,这时候更加所在机器的不同 Int 和 UInt 会映射为不同的类型,比如在 64 位机器中, Int 映射为 Int64, UInt 映射为 UInt64。

浮点型(Float, Double)

和其它高级语言类似,浮点型分为单精度和双精度。如下:

1
2
3
4
5
var b = MemoryLayout<Float>.size    //4个字节
var b1 = MemoryLayout<Float32>.size //4个字节
var b2 = MemoryLayout<Float64>.size //8个字节
var b3 = MemoryLayout<Float80>.size //16个字节
var c = MemoryLayout<Double>.size //8个字节

定义时,可以使用科学计算法

1
2
var sum = 1.25e3 //1.25*(10^3) = 1250
var sun2 = 0x1p3 //1*(2^3) = 8

也可以使用符号 “_” 来进行分割

1
2
3
var num1 = 001.23
var num2 = 1_000
var num3 = 1_000.1_001

布尔型(Bool)

只有明确的两个值

1
2
var bool1 = true    //创建布尔真变量
var bool2 = false //创建布尔假变量

字符串(String)

和别的语言一样,使用双引号括起来的字符串。可以通过 “+” 号直接进行拼接。

1
2
3
4
5
6
7
8
//定义一个变量 赋值为字符串"Hello, playground"
//声明字符串变量str
//对字符串变量str进行赋值
var str = "hello,playground"
//更改str变量的值
str = "newValue"
//在str字符串变量后边追加hello
str = str+"hello"

下一步

接下来,我们将简要的介绍 Swift 中的变量与常量 Swift 语言简明教程(二) - 变量与常量