在Swift中`<|`是什么意思

时间:2019-02-01 06:40:20

标签: ios swift unmarshalling

我有一个使用Marshal的代码。

class MediaModel: Unmarshaling {
    var id: Int64
    var videoUrl: String?
    var text: String?

    required init(object: MarshaledObject) throws {
        id =        try object <| "id"
        videoUrl =  try? object <| "videos.original_url"
        text =      try? object <| "text"
    }
}

<|在这里代表什么?

谢谢。

1 个答案:

答案 0 :(得分:8)

如果您查看此Marshal source code,则可以看到它的含义。自定义运算符。 此自定义运算符用于通过键从MarshaledObject字典中获取值。

// MARK: - <| Operator

infix operator <|

public func <| <A: ValueType>(dictionary: MarshaledObject, key: String) throws -> A {
    return try dictionary.value(for: key)
}