【发布时间】:2016-04-07 00:27:25
【问题描述】:
你能在 Swift 中指定全局/模块命名空间吗?
这段代码:
func foo(i: Int) { print("global foo", i) }
class Bar {
func foo() { foo(5) }
}
导致错误Argument passed to call that takes no arguments。我在别处看到它说MyProject.foo(5) 或Swift.foo(5) 或MyModule.foo(5) 可能有效,但在Swift 2.1.1 中它们似乎没有。
编辑:听起来MyProject.foo(5) 对其他人有用。有人知道为什么它可能不在我的项目中吗?
【问题讨论】:
-
很好奇。为什么你应该能够将 5 传递给不带参数的函数?
-
全局范围内的函数是接受参数的函数。你听起来就像编译器。
-
当我查看它时,出于某种原因,我没有看到带参数的 foo()。但现在我知道了。
-
这至少比编译器错误更容易解决!
标签: swift scope namespaces