我怎么能有一个变量和同名的函数在Swift



我想有一个变量和一个同名的函数,因此我有以下代码:

var testString: String = "some string from variable!"
// use case: print(testString)

func testString() -> String {
return "some string from function!"
}
// use case: print(testString())

正如你所看到的,这两个用例有很大的不同!一个是testString,另一个是testString(),但是xCode向我抱怨这个:

Invalid redeclaration of 'testString()'

我不知道为什么这一定是一个问题!一个是变量,另一个是函数!

无论如何,我做了一个小hack,我把函数变形成下面的这个,现在它编译了,没有问题!用例仍然与testString()

相同
func testString(_ value: String? = nil) -> String {
return "some string from function!"
}
// use case: print(testString())

现在我有我想要的东西,但我有不希望的函数初始化器!一般来说,我该如何解决这个问题?

这是不可能的,因为它们共享相同的名称空间:

https://forums.swift.org/t/why-doesnt-swift-allow-a-variable-and-a-function-with-the-same-name/5038

相关内容

  • 没有找到相关文章

最新更新