Xcode Swift语言中的名称空间和模块

Xcode Swift语言中的名称空间和模块,xcode,module,namespaces,clang,swift,Xcode,Module,Namespaces,Clang,Swift,我在从WWDC回家的路上一直在试验Swift。在我看来,Swift最引人注目的新特性之一是名称空间。不过,我并没有像我预期的那样让它正常工作。请查看附带的屏幕截图,如果你知道我做错了什么,请告诉我 编辑:我当然尝试删除导入语句。很抱歉,如果我在Swift电子书中搜索“名称空间”或“名称空间”,则没有结果。也许你可以给我一个额外资源的链接 我只需使用struct和static函数就可以解决您的问题 甲级 B类 您可以按如下方式删除导入并执行ClassA函数: ClassA.localize()

我在从WWDC回家的路上一直在试验Swift。在我看来,Swift最引人注目的新特性之一是名称空间。不过,我并没有像我预期的那样让它正常工作。请查看附带的屏幕截图,如果你知道我做错了什么,请告诉我


编辑:我当然尝试删除导入语句。

很抱歉,如果我在Swift电子书中搜索“名称空间”或“名称空间”,则没有结果。也许你可以给我一个额外资源的链接

我只需使用
struct
static
函数就可以解决您的问题

甲级 B类 您可以按如下方式删除导入并执行ClassA函数:

ClassA.localize()

第二条路 在您的情况下,您也可以对字符串进行如下扩展:

extension String {
    func localize() -> String {
        return self+"-localized"
    }
}

println("Test".localize()) // prints "Test-localized"

事实证明,这是一个已知的错误:

名称空间的概念不必用这个名称来描述,就可以准确地描述它。我试图做的是从我的代码中访问一个函数,它是另一个模块的全局函数,也是另一个命名空间中的函数。使用类、结构或扩展来实现语法并不能解决问题。事实证明,这是一个已知的错误:并且附带说明。名称空间实际上已经出现在幻灯片上,因为他们首先宣布了Swift。添加了一个示例,以防有人感兴趣
extension String {
    func localize() -> String {
        return self+"-localized"
    }
}

println("Test".localize()) // prints "Test-localized"