无参数的Swift函数

无参数的Swift函数,swift,Swift,我的Utilities.swift中有一些简单的代码,因为我永远记不起“uftwhatever”或count(self) 但这意味着我需要使用类似于 let l = myString.length() 我更喜欢做 let l = myString.length 但我想不出来。这可能吗?是的,可能。您只需将其创建为只读计算属性,如下所示: 只读计算属性 具有getter但没有setter的计算属性称为 只读计算属性。只读计算属性始终为空 返回一个值,可以通过点语法访问,但不能 设置为不同的值

我的Utilities.swift中有一些简单的代码,因为我永远记不起“uftwhatever”或count(self)

但这意味着我需要使用类似于

let l = myString.length()
我更喜欢做

let l = myString.length

但我想不出来。这可能吗?

是的,可能。您只需将其创建为只读计算属性,如下所示:

只读计算属性

具有getter但没有setter的计算属性称为 只读计算属性。只读计算属性始终为空 返回一个值,可以通过点语法访问,但不能 设置为不同的值

必须声明计算属性,包括只读计算属性 属性作为带有var关键字的变量属性,因为 这个值不是固定的。let关键字仅用于常量 属性,以指示它们的值一旦更改就无法更改 设置为实例初始化的一部分

您可以通过以下方式简化只读计算属性的声明: 删除get关键字及其大括号:


非常有趣!我永远不会仅仅因为这个名字就找到它,这不是我会寻找的东西。谢谢如果没有参数,我将使用只读计算属性,否则我将使用函数。我不得不说,此功能的名称和语法都很奇怪。我不知道你的情况,但当我看到这一点时,我认为“没有参数的函数”不是“只读计算属性”。在我看来,我应该能够简单地去掉函数的()。斯威夫特有一些非常奇怪的语法…这很有趣,我喜欢这样做
let l = myString.length
extension String {
    var length: Int {
        return count(self)   // Swift 1.2
    }
}


"Hello World".length // 11