Chapter 1. The Architecture of Swift 一、Swift总体机构 二、对象类型 三、变量 四、方法 五、Swift文件结构 六、作用域、生命期 七、模块

一、Swift总体机构

  1. 关于分号与换行符
  • 在Swift中一条语句不需要以分号结束(加不加分号都可),以换行符标识一条语句的结束
  • 但是如果一行包含多个语句,则语句之间需要以分号分割
  • 一条语句可以分割为多行,以避免过长的行
print("hello")
print("world")

print("hello"); print("world")

print(
        "hello world")
  1. 注释
  • swift支持单行注释也支持多行注释
print("hello world")  // 当行注释,也叫C++分割的注释,双斜杠后面的所有内容都是注释

/*
 *   这是多行注释,也叫C风格的注释/* */之间的所有内容都是注释
 */
print("多行注释")
  • 在许多语言里多行注释不可以嵌套,但是在Swift中,多行注释是可以嵌套的
  1. 编译
  • Swift是编译型的语言且Swift的编译器十分严格
  1. 所有的都是对象
let s = 1.description

extension Int {
    func sayHello() {
        print("Hello, I'm \(self)")
    }
}
 
1.sayHello()
  • 大多数程序设计语言(不含一些脚本语言)上述语句都是不合法的,但是在Swift中却是合法的
  • 这表明在Swift中像1这样的也是一个对象
  • 甚至通过extension关键字给1这种Int类型添加新的方法

二、对象类型

  • 在大多数编程语言中,对象仅指类的实例,但是Swift则不然
  • 在Swift中,类、结构体、枚举的实例都是对象

三、变量

  1. 变量的本质
  • 变量是对象的名字
  1. 变量的声明、初始化、类型
let one = 1
  • let标识了one这个变量的类型,与之相同的还有var,分别代表该变量是否可变
  • one代表变量名
  • one的后面可以以: Int的形式给出one的类型,如果没有给出,则根据赋值的类型进行推断,并且该类型确定之后就不可再变
  • 类型第一个字母一般大写,变量的名称第一个字母一般小写

四、方法

  • 方法必须在某个方法中调用
  • 方法定义如下
func go() {
    let one = 1
    var two = 2
    two = one
}

五、Swift文件结构

  1. 只有特定的内容可以位于Swift文件的顶层(不是顶部的意思,相当于文件的所包含内容的第一级)
// 模块引入语句
imort UIKit

// 变量声明,此处声明的变量是全局变量
let topVariable = 1

// 方法声明
func functionDeclara() {
  print("方法申明")
}

// 对象(类、结构体、枚举)类型声明
class Manny {
}
  • 在大括号内可以包含变量、方法、对象声明

六、作用域、生命期

  • 作用域包括模块、文件、花括号
  • 作用域限定范围、生命期限定时间
  • 名称空间提供了名称管理的便利性,但是不像C++有明确的namespace这样的关键字

七、模块

  • 每个应用就是一个模块,模块名是应用名
  • 引入一个模块后,就可以使用该模块的顶层名称
  • 所有的Swift相关内容都在Swift这个包里,可以使用improt Swift引入这个模块,但是没有必要这么做,这个模块是自动包含的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章