2017-07-08 33 views
-4

現在我正在閱讀着名的圖書館「RxSwift」,但我有一個問題。斯威夫特:不屬於什麼的方法

參見this page

如您所知,方法_map<Element, R>(source: Observable<Element>, transform: @escaping (Element) throws -> R)不屬於任何類或擴展或類似的東西。

這是如何解釋的?

我知道「頂級」的概念,但這與它有所不同。

你能解釋一下嗎?

+3

_this是與它不同。 _ 你爲什麼這麼認爲?這只是一個頂級功能。 – OOPer

+0

哦,真的嗎?我假設頂級概念適用於iOS中具有@UIApplicationMain的類。我們可以在任何地方編寫頂級功能嗎? –

+0

然後,您有自己的_top-level_概念,通常Swift社區不會使用該術語。我很樂意聽到你自己的概念是什麼。 – OOPer

回答

1

通常這樣的函數被稱爲「全局函數」,儘管在這種特殊情況下函數只能在RxSwift模塊中使用,而不是全局使用。 「頂級功能」和描述符一樣好。

概念往往甩開需要把每一個功能的一類誰Java開發人員,但要求是人工和任意一個只適用於Java的AFAIK ...

+0

請參閱https://developer.apple.com/swift/blog/?id=7?他們說「大部分應用程序的源文件中不允許使用頂級代碼」。如果我們可以在任何地方使用全球功能,這意味着什麼 –

+1

頂級*可執行*代碼是不允許的。你可以*定義一個全局函數,但是你實際上不能在全局上下文中調用一個函數。 –