1. 读后概述
《Swift编程:从入门到精通》是一本全面介绍Swift编程语言的书籍,适合初学者和有一定编程基础的开发者。本书以通俗易懂的语言,详细讲解了Swift语言的语法、特性以及在实际开发中的应用。通过本书的学习,读者可以掌握Swift编程的基本技能,并能够独立开发iOS和macOS应用程序。
2. 语法笔记
2.1 说明
编程语言都是相通的,因此对于基础的语法都是一样。下面主要是对不同的且重要的语法进行了做了笔记,对于已知或类似的语法没有进行细致的说明。
2.2 基础类型
2.2.1 变量与常量
Swift用let
定义常量,用var
定义变量。对于数据类型则Swift自行推断(类型推断在C中相当于auto
这个类型占位符一样)。常量在设定后,将不能再更改它的值,变量则可以。
let constant = 10
var variable = 20
如果需要指定类型,则使用类型注解:
var welcomeMessage: String = "Hello, World!"
2.3 运算符
Swift中的运算符包括算术运算符、比较运算符、逻辑运算符等。
let a = 5
let b = 3
let sum = a + b
let difference = a - b
let product = a * b
let quotient = a / b
let remainder = a % b
let greaterThan = a > b
let lessThan = a < b
let equal = a == b
let notEqual = a != b
let and = true && false
let or = true || false
let not = !true
2.4 字符与字符串
Swift中的字符串是由字符组成的序列,可以使用单引号或双引号定义。
let singleQuotedString = "Hello"
let doubleQuotedString = "Hello, World!"
2.5 控制流
Swift中的控制流包括条件语句和循环语句。
2.5.1 条件语句
let a = 5
let b = 10
if a > b {
print("a大于b")
} else if a < b {
print("a小于b")
} else {
print("a等于b")
}
2.5.2 循环语句
for i in 1...10 {
print(i)
}
var sum = 0
for i in 1...10 {
sum += i
}
print(sum)
2.6 函数
Swift中的函数是代码块,可以接受参数并返回值。
func add(a: Int, b: Int) -> Int {
return a + b
}
let result = add(a: 5, b: 10)
print(result)
2.7 闭包
闭包是函数的另一种形式,它可以捕获并记住与之定义时的作用域内的变量。
let closure = { (a: Int, b: Int) -> Int in
return a + b
}
let result = closure(5, 10)
print(result)
2.8 枚举、结构体、类
2.8.1 枚举
枚举(enum)是一种用于组织相关值的类型,可以包含原始值和关联值。
enum Color {
case red
case green
case blue
}
let color = Color.red
print(color)
2.8.2 结构体
结构体(struct)是一种值类型,可以定义属性和方法。
struct Point {
var x: Int
var y: Int
}
let point = Point(x: 5, y: 10)
print(point)
2.8.3 类
类(class)是一种引用类型,可以定义属性和方法。
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let person = Person(name: "张三", age: 20)
print(person)
2.9 类的构造与析构
2.9.1 构造函数
构造函数用于初始化类实例。
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let person = Person(name: "张三", age: 20)
print(person)
2.9.2 析构函数
析构函数用于释放类实例占用的资源。
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
deinit {
// 释放资源
}
}
2.10 属性监听器
属性监听器用于监听属性的变化。
class Person {
var name: String {
didSet {
print("姓名变化")
}
}
init(name: String) {
self.name = name
}
}
let person = Person(name: "张三")
person.name = "李四"
2.11 类的继承
类可以继承自另一个类,继承意味着子类可以继承父类的属性和方法。
class Student: Person {
var score: Int
init(name: String, age: Int, score: Int) {
self.score = score
super.init(name: name, age: age)
}
}
let student = Student(name: "张三", age: 20, score: 90)
print(student)
2.12 扩展
扩展可以给已有的类型添加新的属性、方法等。
extension Int {
func squared() -> Int {
return self * self
}
}
let number = 5
print(number.squared())
2.13 协议
协议可以定义一组必须实现的属性和方法。
protocol Vehicle {
var name: String { get }
func drive()
}
class Car: Vehicle {
var name: String = "汽车"
func drive() {
print("开车")
}
}
let car = Car()
print(car.name)
car.drive()
2.14 泛型
泛型可以定义一个可以接受任何类型的类型参数。
func swap<T>(a: T, b: T) -> (T, T) {
return (b, a)
}
let result = swap(a: 5, b: "6")
print(result.0)
print(result.1)
3. 总结
通过学习《Swift编程:从入门到精通》,读者可以全面了解Swift编程语言,掌握其语法和特性,并能够独立开发iOS和macOS应用程序。本书内容丰富,适合初学者和有一定编程基础的开发者学习。