一、Swift总体机构
- 关于分号与换行符
- 在Swift中一条语句不需要以分号结束(加不加分号都可),以换行符标识一条语句的结束
- 但是如果一行包含多个语句,则语句之间需要以分号分割
- 一条语句可以分割为多行,以避免过长的行
print("hello")
print("world")
print("hello"); print("world")
print(
"hello world")
- 注释
print("hello world") // 当行注释,也叫C++分割的注释,双斜杠后面的所有内容都是注释
/*
* 这是多行注释,也叫C风格的注释/* */之间的所有内容都是注释
*/
print("多行注释")
- 在许多语言里多行注释不可以嵌套,但是在Swift中,多行注释是可以嵌套的
- 编译
- Swift是编译型的语言且Swift的编译器十分严格
- 所有的都是对象
let s = 1.description
extension Int {
func sayHello() {
print("Hello, I'm \(self)")
}
}
1.sayHello()
- 大多数程序设计语言(不含一些脚本语言)上述语句都是不合法的,但是在Swift中却是合法的
- 这表明在Swift中像1这样的也是一个对象
- 甚至通过extension关键字给1这种Int类型添加新的方法
二、对象类型
- 在大多数编程语言中,对象仅指类的实例,但是Swift则不然
- 在Swift中,类、结构体、枚举的实例都是对象
三、变量
- 变量的本质
- 变量的声明、初始化、类型
let one = 1
- let标识了one这个变量的类型,与之相同的还有var,分别代表该变量是否可变
- one代表变量名
- one的后面可以以: Int的形式给出one的类型,如果没有给出,则根据赋值的类型进行推断,并且该类型确定之后就不可再变
- 类型第一个字母一般大写,变量的名称第一个字母一般小写
四、方法
func go() {
let one = 1
var two = 2
two = one
}
五、Swift文件结构
- 只有特定的内容可以位于Swift文件的顶层(不是顶部的意思,相当于文件的所包含内容的第一级)
// 模块引入语句
imort UIKit
// 变量声明,此处声明的变量是全局变量
let topVariable = 1
// 方法声明
func functionDeclara() {
print("方法申明")
}
// 对象(类、结构体、枚举)类型声明
class Manny {
}
六、作用域、生命期
- 作用域包括模块、文件、花括号
- 作用域限定范围、生命期限定时间
- 名称空间提供了名称管理的便利性,但是不像C++有明确的namespace这样的关键字
七、模块
- 每个应用就是一个模块,模块名是应用名
- 引入一个模块后,就可以使用该模块的顶层名称
- 所有的Swift相关内容都在Swift这个包里,可以使用improt Swift引入这个模块,但是没有必要这么做,这个模块是自动包含的