2017-02-19 25 views
0

例如,sqrt(x)。基於我的搜索(也許最有幫助here),我知道我可以導入達爾文或UIKit等,並獲得sqrt工作。 (或根據here,.squareRoot())但是對於未來,誰知道我想要使用什麼功能,我怎麼才能在沒有人問我這個問題的情況下自己找到這個問題?我所要做的就是去任何一種C++文檔站點,搜索sqrt或square root,我發現我應該包含cmath或math.h,如果我想看看cmath還有什麼,那很容易,我只需點擊它。如何查找可導入的函數[Swift]

但是我有一個絕對可怕的時間試圖做類似的斯威夫特。如果我搜索內置或在線文檔,最好搜索sqrt得到我是this,但這絕對沒有跡象表明我可以通過導入達爾文來使用它,更不用說完全沒有描述。 (搜索平方根確實找到了.squareRoot(),但這不需要導入,所以不是真正的問題)

即使我已經知道(或猜測)並導入它,然後在我鍵入它之後單擊sqrt ,它讓我知道它存在,並且是Darwin.C.math的一部分,但我甚至無法點擊它來查看其中還有什麼。

你如何學習這些東西?

+0

很多這樣的東西真的很少記錄。 REPL自動完成可以告訴你哪些全局函數存在,儘管 – Alexander

+0

好吧,'Foundation'被導入到'UIKit'和'Cocoa'中,並且'Darwin'被導入'Foundation',所以如果你只是簡單地包含所有的核心函數'import foundation'或'import UIKit/Cocoa',具體取決於你需要的東西。 – xoudini

+0

歡迎來到SO!其實,歡迎使用Swift進行編程!你應該看到去年發生的事情,當事物遷移到Swift 3中。你真的需要在2014年體驗試圖在Xcode中編寫Swift 1.0。我的觀點是:現在的事情幾乎不穩定(假如你已經使用Swift 3,針對Apple OS,並知道在哪裏可以找到關於什麼是最好的文檔,會是什麼)。上週從Swift 4中刪除了ABI的穩定性,這在7-8個月左右。仔細研究一下String類型的重構。最後,C++有多長時間? – dfd

回答

0

即使我已經知道(或猜測)並導入它,然後在我鍵入它後選擇單擊sqrt,它讓我知道它存在並且是Darwin.C.math的一部分,但是我不能甚至點擊它看看還有什麼。

希望我不會誤解這裏的問題,但是在你的IDE中,你是否嘗試了cmd-click--而不是像你所說的那樣單擊選項 - 你想查找的函數?這將直接帶您到Darwin.C.math,而不僅僅是告訴你sqrt()住在那裏。

+0

這很有用,謝謝。正如你可能知道的那樣,我剛剛開始,並且肯定有更多功能可供查找。做完這些之後,有沒有辦法看看這個函數實際上做了什麼?沒有描述,雖然沒有熟悉功能的問題,但將來可能會成爲一個問題,但至少能夠得到實際的功能代碼將是某種東西。 此外,不幸的是,這隻能解決問題的一小部分,如果我不知道(或猜測)什麼是什麼東西,並沒有真正的幫助。 – ceegers

+0

@ceegers取決於你看的地方。在Xcode中,你看到的只是一個生成的頭文件,所以你不會看到任何實現代碼。然而,Swift是開源的,也是內核的一部分,所以你可以在GitHub上找到Foundation的源代碼,以及來自Apple網站的Darwin的xnu源代碼(不是用Swift編寫的)。 – xoudini

+0

我已經查看了XCode包和系統庫的內部,但是我找不到超過一堆Darwin.swiftdoc和.swiftmodule文件,它們是用二進制編寫的。不確定這些是否是實際的實現 - 它們看起來像是可能的,只是不可讀的 - 或者Apple是否提供了原始可讀的.c文件,但我無法在任何地方找到它們。 –