我讀亞光的iOS pragraming書,當我讀到這裏:在我們的Swift文件中,我應該在哪裏導入swift模塊?
斯威夫特本身就是一個模塊中定義 - 斯威夫特模塊。你的代碼總是隱式地導入Swift模塊。你可以通過使用import Swift開始一個文件來明確這一點;沒有必要這樣做,但它也沒有害處。
這個事實很重要,因爲它解決了一個重大的謎題:像print這樣的東西來自哪裏,爲什麼可以在任何消息之外將它們用於任何對象? print實際上是一個在Swift模塊頂層聲明的函數,你的代碼可以看到Swift模塊的頂層聲明,因爲它導入了Swift。就您的代碼而言,打印功能因此變成了與其他任何打印功能一樣的普通頂層功能;它對您的代碼是全球性的,您的代碼可以在不指定其名稱空間的情況下對其進行說明。你可以指定它的命名空間 - 說Swift.print(「hello」)之類的東西是完全合法的 - 但你可能永遠不會,因爲沒有名稱衝突需要解決。
比如,在我的測試ViewController
:
import UIKit
//import Swift // here we can import Swift. it is okay
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Swift.print("hello, matt") // where we import the Swift ?
}
}
我們可以用print
或Swift.print
,我只想問,怎麼蘋果隱含進口斯威夫特模塊?並且明顯,UIKit
,我們必須導入,如果可以隱式導入Swift
模塊,爲什麼有蘋果不隱式導入UIKit
?
我的困惑是如何隱式導入Swift
模塊?
您的引用正確地解釋了您似乎在詢問的內容 – Alexander
@Alexander,我更新了問題,之前是我缺乏清晰度。 – aircraft