Swift允许两者:
var foo: Int { return 1 }
func foo() -> Int { return 1 }
在呼叫站点,这些用作:
bar.foo
bar.foo()
我看到func
:
bar.foo
参数允许() -> Int
Bar.foo
是Bar -> (() -> Int)
)。我看到var
:
let
兼容以获得协议一致性 - 如果协议FooType
,Bar
可能符合计算var
,但Baz
可能会获得仅使用常量let
声明。这也可能导致代码更短。两种声明的所有差异和相似之处是什么?
答案 0 :(得分:0)
使用var
,您可以添加其他观察者(默认为get
观察者)
var foo: Int {
get{
return 1
}
set(v){
self.something = v
self.moreStuff()
}
}
允许设置bar.foo = 5
func
只是一种方法,当void
具有类型
var
(无)