同一功能的代碼,但在不同的方式斯威夫特功能標籤混亂
叫我寫道:
func findIndexOfString(str: String, arr: [String]) -> Int?{
for (index, value) in enumerate(arr){
if (value == str){
return index
}
}
return nil
}
我可以調用這個函數像這樣,沒問題: (當然,在AppDeleagte類)
let index = findIndexOfString(name, arr: neighbors)
然後我整個函數代碼移到另一個文件 - Function.swift(不是一類),我必須調用像這樣的功能:
let index = findIndexOfString(name, neighbors) // no arr:
爲什麼?也許迅速將不在類中的函數視爲全局範圍C函數?
其實,我的問題是爲什麼我把我的代碼移到另一個文件中,我調用函數的方式改變了(沒有標籤 - arr :)? –
嗨,我想我發現了另一個關於我的問題的解釋... http://www.objc.io/issues/16-swift/swift-functions/(調用所有函數和調用方法)。本文說,如果不包含在類中的代碼將被視爲功能,如果是,我將被視爲一種方法。我們稱之爲函數和方法的方式是不同的。 –
我已經在我的答案中提供了一個文檔鏈接,您可以在那裏查看。 –