swift - swift 中的匿名类

标签 swift anonymous-class

Swift 中的匿名类是否有等效的语法或技术? 只是为了澄清这里的 Java 示例中的匿名类 - http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html

谢谢!

最佳答案

据我所知,没有等效的语法。

关于等效技术,理论上您可以使用闭包并在其中定义结构和类。可悲的是,我无法让它在 Playground 或项目中工作而不让它崩溃。这很可能还没有准备好在当前的测试版中使用。

有点像...

protocol SomeProtocol {
    func hello()
}

let closure : () -> () = {
    class NotSoAnonymousClass : SomeProtocol {
        func hello() {
            println("Hello")
        }
    }
    let object = NotSoAnonymousClass()
    object.hello()
}

...当前输出此错误:

invalid linkage type for global declaration
%swift.full_heapmetadata* @_TMdCFIv4Test7closureFT_T_iU_FT_T_L_19NotSoAnonymousClass
LLVM ERROR: Broken module found, compilation aborted!
Command /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 1

关于swift - swift 中的匿名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24408068/

相关文章:

java - 为什么匿名类可以访问封闭类的非最终类成员

ios - 如何在swift中使用模型类?

class - swift 有类级别的静态变量吗?

swift - UISearchBar的searchBarSearchButtonClicked不取消输入模式

java - javac 是否应该在同名的匿名类之外查找方法?

ios - (Swift) 以编程方式在 UITableViewController 上方添加 UIView

ios - 详细文本标签不显示

java - Java 中未实例化的匿名类

java - 为什么这不能编译?无法为匿名类的 String 成员分配新值