1. 布尔类型
Bool 类型的值只能是 : true 或者 false

let isFriend = true
let isEnemy = false

Swift 语言无法像 C 语言那样用非 0 表示 true, 用 0 表示 false; 也不能像 Objective-C 那样, 使用 YES 表示 true, 使用 NO 表示 false
2. 整数类型及其属性
Swift 提供有符号的整数类型 Int 和无符号整数类型 UInt
整数类型有 8、16、32 和 64 位, 四种形式
可以使用最小 .min 和最大 .max 的形式访问整数类型的最大值

let minValueOfUInt8 = UInt8.min//结果: 0
let minValueOfUInt16 = UInt16.min//结果: 0
let minValueOfUInt32 = UInt32.min//结果: 0
let minValueOfUInt64 = UInt64.min//结果: 0
let minValueOfInt8 = Int8.min//结果: -128
let minValueOfInt16 = Int16.min//结果: -32768
let minValueOfInt32 = Int32.min//结果: -2147483648
let minValueOfInt64 = Int64.min//结果: -9223372036854775808
let minValueOfInt = Int.min//结果: -9223372036854775808
let minValueOfUInt = UInt.min//结果: 0
let maxValueOfUInt8 = UInt8.max//结果: 255
let maxValueOfUInt16 = UInt16.max//结果: 65535
let maxValueOfUInt32 = UInt32.max//结果: 4294967295
let maxValueOfUInt64 = UInt64.max//结果: 18446744073709551615
let maxValueOfInt8 = Int8.max//结果: 127
let maxValueOfInt16 = Int16.max//结果: 32767
let maxValueOfInt32 = Int32.max//结果: 2147483647
let maxValueOfInt64 = Int64.max//结果: 9223372036854775807
let maxValueOfInt = Int.max//结果: 9223372036854775807
let maxValueOfUInt = UInt.max//结果: 18446744073709551615

Swift 还提供一些用于整数类型的使用函数

var num = 30
num.distance(to: 40)//获得两个数据的差值 (40-30), 结果: 10
num.distance(to: 20)//获得两个数据的差值 (20-30), 结果: -10
num.advanced(by: 10)//将num增加10 (30+10), 结果: 40

3. 浮点类型及属性
Swift 提供了以下两种有符号的浮点数类型 :

    • Double 表示 64 位浮点数, 具有 15 位小数的精度
    • Float 表示 32 位浮点数, 具有 6 位小数的精度
let num0 = -2.1
let num1: Double = 9.1
let num2: Float = 9.1
let floatInfinity = Float.Infinity//结果: inf
let doubleInfinity = Double.Infinity//结果: inf

Swift 提供了大量用于浮点数据的使用函数 :

var num = -9.8
num.advanced(by:20)//将 num 加上 20 (-9.8+20), 结果: 10.2
num.distance(to:23.3)//获得 num 和 23.3 的差值 (23.3-(-9.8)), 结果: 33.1
num.isFinite//判断 num 是否为有限的, 结果: true
num.isInfinite//判断 num 是否为无限的, 结果: false
num.isZero//判断 num 是否为零, 结果: false
num.isLess(than:-9.0)//判断 num 是否小于 -9.0, 结果: true
num.multiply(by:2)//将 num 乘以 2, 结果: -19.6

3. 字符和字符串
字符串定义的两种方法 :

var str1 = ""
var str2 = String()

想让某个量为一个英文字母

let char: Character = "A"
print(char)//结果: A

想让某个量为一个特殊字符

let sun = "\u{2600}/"
print(sun)//结果: ☀

想让某个量为一串字符

let str = "Hello, Swift"
let str2 = "Hello, Swift\u{2600}"

字符串的引入

let 数学 = 95
let 语文 = 98
let 成绩 = "你的语文成绩是 \(语文), 你的数学成绩是 \(数学)."
print(成绩)
//结果: 你的语文成绩是 98, 你的数学成绩是 95.

字符串之间可以直接用 "+" 进行连接
字符串之间可以用 "==" 进行比较
Swift 还提供一些字符串的函数 :

var name = ""
var EM = "!"
name.isEmpty//检测字符串是否为空, 结果: true
name = "Jonny"
name.append(EM)//在字符串后面添加 EM 字符串, 结果: Jonny!
name.insert(EM, at: name.endIndex)//在字符串后面添加 EM 字符串, 结果: Jonny!!
var userType = "我是一个来自中国的高中生"
print(userType.hasPrefix("我是"))//在字符串前部分查找 "我是", 结果: true
print(userType.hasSuffix("高中生"))//在字符串后部分查找 "高中生", 结果: true
var str1 = "hello"
var str2 = "HELLO"
print(str1.uppercased())//将字符串转换为大写, 结果: HELLO
print(str2.lowercased())//将字符串转换为小写, 结果: hello
var str = "hello, swift!"
print(str.capitalized)
//将字符串每个单词的第一个字母转换为大写, 结果: Hello, Swift!
str.substring(from:str.index(str.startIndex, offsetBy: 7))
//获得从第一个字符开始到指定位置的字符串, 结果:Swift!
str.substring(to:hello.index(hello.endIndex, offsetBy: -8))
//从字符串的结束点开始截取至结束点坐标左移 8 个字符后的位置, 结果: Hello
str.replacingOccurrences(of: "Hello",with: "Hi")
//将字符串中的 Hello 用 Hi 代替, 结果: Hi, Swift!
str.remove(at:str.index(hello.startIndex, offsetBy: 5))
//删除字符串指定位置上的字符, 结果: ,

Swift 字符串中的转义符 :

转义符 用途说明
\0 空字符
\\ 反斜杠
\t 制表符
\n 换行符
\r 回车符
\" 双引号
\’ 单引号

转义符在代码中的使用 :

let message= "Hi\tJerry, \n\"Goodmorning.\""
print(message)
//输出结果: Hi    Jerry,
 "Good morning."

查找字符串中某个字符出现的次数 :

var num = 0
let phoneNumber = "13123456789"
for temp in phoneNumber.characters{
    if temp == "1"{
        num += 1
    }
}
print(num)//结果: 2

4.元组
元组是包含了若干个相关联变量的对象, 它经常被作为函数的返回值

let people = ("Jonny", 18)
let peopleInformation = (name: "Jonny",age: 18)
let str1 = "Jonny"
let str2 = "Boy"
let(str1, str2) = peopleInformation
print(peopleInformation.name)//结果: Jonny
print(people.0)//结果: Jonny

5.运算符
一元运算符 : "+", "-", "!"
+ : 通常不添加, 添加后不改变值
- : 使值变为其相反值
! : 对布尔值取相反值
二元运算符 : "+", "-", "*", "/", "%"
三元运算符 : question ? answer1 : answer2
如果 question 为真, 则返回 answer1; 如果 question 为假, 则返回 answer2
比较运算符 : ">", "<", ">=", "<=", "=="
比较运算符的返回值都是布尔值
拥有同样值数量的元组也可以进行比较, 前提是元组中的值是可以比较的
元组以从左到右的顺序, 对值进行比较, 直到找到两个不相等的值为止, 此时比较结束并且返回布尔值
当元组中存在字符串的时候, 此时从字符串的第一个字符开始从左往右比较
当两个元组的所有值都相同, 则认为这两个元组相等

(2,3) > (1,3)//结果: true
("a",3) > ("class2",3)//结果: true
("class1", "class2) > ("class2", "class2")//结果: false
("A", 6) == ("A", 6)//结果: true