swift swift中的小动态类型系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift swift中的小动态类型系统相关的知识,希望对你有一定的参考价值。

//playground for dynamic runtime system in swift

enum DynObject {
    
    case int(Int)
    case string(String)
    case bool(Bool)
    indirect case list([DynObject])
    indirect case map([String:DynObject])
    
    //multiple initializers for fast wrapping
    init(element:Int) {
        self = DynObject.int(element)
    }
    
    init(element:String) {
        self = DynObject.string(element)
    }
    
    init(element:Bool) {
        self = DynObject.bool(element)
    }
    
    init(element:[DynObject] = [DynObject]()) {
        self = DynObject.list(element)
    }
    
    init(element:[String:DynObject] = [String:DynObject]()) {
        self = DynObject.map(element)
    }
}

func + (a:DynObject, b:DynObject) -> DynObject {
    switch a {
    case .int(let first):
        switch b {
        case .int(let second):
            return DynObject(element:first + second)
        default:
            return DynObject(element:0)
        }
    default:
        return DynObject(element:0)
    }
}


var a = DynObject(element:4)
var b = DynObject(element:3)
a + b
//7

以上是关于swift swift中的小动态类型系统的主要内容,如果未能解决你的问题,请参考以下文章

swift 类型系统 Self self Type

Swift - 从 Nib 实例化总是返回 UIViewController 类型而不是动态类型

Swift 算法实战:动态规划

Swift 根据响应类型为 JSON 字段值动态选择 Codable 结构

Swift 动态原型行高

反射 Mirror | Swift 动态性