【发布时间】:2017-03-30 18:20:12
【问题描述】:
在这种情况下使用 getDataPoint() 是一种方法而不是函数,我是否正确?
class Globals: NSObject{
static let sharedInstance = Globals()
func getDataPoint() -> Int {
var theValue: Int
//Some JSON code here
return theValue
}
}
class GameScene: SKScene{
override func didMove(to: view: SKView){
let globals = Globals.sharedInstance()
var x = globals.getDataPoint() //Is a method?
}
}
但如果我在 Globals 类中使用,我会称它为函数。
class Globals: NSObject{
static let sharedInstance = Globals()
func foo() {
print(\(getDataPoint())) //Is a function?
}
func getDataPoint() -> Int {
var theValue: Int
//Some JSON code here
return theValue
}
}
【问题讨论】:
-
它附属于一个类型——因此它是一个方法。但方法仍然是函数。
-
@Hamish 这正是我的想法,但请参阅我的编辑。然后呢?
-
@Sulthan 你是什么意思一切都返回一个值?
foo()在我的示例中返回什么? -
方法只是在类内部定义的简单函数。在类定义中,它们看起来像一个常规函数。要在课堂外使用它们,您需要使用点符号
Globals.foo()。 (至少对于普通的课程 - 我不知道 Swift) -
关于函数返回值和方法的已删除评论不是一个粗略的启发式方法,似乎有点过时了。我知道的语言(Python 和 R)肯定不是这种情况