一、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引入這個模塊,但是沒有必要這麼做,這個模塊是自動包含的