我偶然发现了一些代码,其中变量声明使用return
来分配变量值,如下所示:
var method: HTTPMethod { return .Post}
这条线是否与下面相同?
var method: HTTPMethod = .Post
答案 0 :(得分:1)
这两行不太相似。
第一行声明没有setter的计算属性。这意味着该值是常量。
第二个声明是一个简单的属性声明,其值初始化为.Post
。这意味着稍后可以更改属性。
第一行更类似于以下行而不是第二行:
let method: HTTPMethod = .Post
由于上面也声明了一个常量属性。
那么let
常量属性和没有setter的计算属性之间有什么区别并返回一个常量值?主要区别在于,计算属性可以放在扩展中,而let
常量则不能。
答案 1 :(得分:1)
两者都不相同
这是唯一的属性
var method: HTTPMethod { return .Post}
和第二个是可变对象,您可以在其中分配不同的对象 值。
var method: HTTPMethod = .Post
答案 2 :(得分:0)
var method: HTTPMethod = .Post
如果您将var
更改为let
,则后者可能会发生变异,行为与第一个选项相同。