我想有一个变量和一个同名的函数,因此我有以下代码:
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