swift中有啥更好:一个函数返回一个变量或只是一个getter变量[重复]

Posted

技术标签:

【中文标题】swift中有啥更好:一个函数返回一个变量或只是一个getter变量[重复]【英文标题】:Whats is better in swift: a function returning a variable or just a getter variable [duplicate]swift中有什么更好:一个函数返回一个变量或只是一个getter变量[重复] 【发布时间】:2016-10-23 07:15:55 【问题描述】:

我可以快速创建一个方法 -

#1

func baseURL() -> String 
    #if DEBUG
        return "https://debug.myserver.url.com"
    #else
        return "https://production.myserver.url.com"
    #endif


我也可以这样写——

#2

var baseURL:String 
    #if DEBUG
        return "https://debug.myserver.url.com"
    #else
        return "https://production.myserver.url.com"
    #endif

这两种方法都满足声明 get only 属性的要求。我个人认为第二种方法的可读性更好。

我知道差别不大,但我还是想知道哪个更好?任何一种方法都比另一种有优势吗?

【问题讨论】:

“我个人觉得第二种方法的可读性更好” 然后第二种更好。 通常我更喜欢计算属性,因为你可以在没有() 的情况下调用它们。但是恕我直言,经验法则似乎是:当您不必创建复杂对象时使用计算属性。 【参考方案1】:

这两种方法比另一种有什么优势吗?

不是内部的,不。计算属性一个函数,所以在实现上没有区别。

【讨论】:

我同意马特的观点。我在做几乎不需要工作的事情时使用 vars(检查变量的状态以查看应该使用哪个值),但如果你正在工作,我建议改为创建一个 func。【参考方案2】:

如果您只是通过最少的计算获得一个值,例如您的示例,那么 getter 是一个不错的选择。

如果获取值可以进行一些繁重的计算或修改类中的任何成员,那么最好使用函数。

【讨论】:

以上是关于swift中有啥更好:一个函数返回一个变量或只是一个getter变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C/Swift中定义常量有啥区别?

当类的实例在 js 中需要不同的函数和变量时,有啥更好的方法?

嵌套函数有啥好处(一般/在 Swift 中)

如何将 Swift 对象序列化或转换为 JSON?

有啥方法可以返回对函数中创建的变量的引用?

完成处理程序 swift 3 从函数返回一个变量