在 Swift 中使用 <-

Working with <- in Swift

我在看 ObjectMapper 图书馆。并注意到 <- 运算符。

这究竟是如何工作的?

// Mappable
func mapping(map: Map) {
    username    <- map["username"]
    age         <- map["age"]
    weight      <- map["weight"]
    array       <- map["arr"]
    dictionary  <- map["dict"]
    bestFriend  <- map["best_friend"]
    friends     <- map["friends"]
    birthday    <- (map["birthday"], DateTransform())
}

下面这行是如何工作的

birthday    <- (map["birthday"], DateTransform())

我知道 birthday 现在是一个元组。

可以访问
self.birthday.0
self.birthday.1

尽管 属性 是这样定义的

var birthday: NSDate?

元组如何响应为 NSDate(在本例中)?

谢谢!

如果您 look at his Operators.Swift 在他的核心库中归档,您会找到他的自定义运算符的所有重载。

他定义了他的自定义运算符:

infix operator <- {}

然后他的运算符有很多重载,这是他列表中的第一个重载:

/// Object of Basic type
public func <- <T>(inout left: T, right: Map) {
    switch right.mappingType {
    case .FromJSON:
        FromJSON.basicType(&left, object: right.value())
    case .ToJSON:
        ToJSON.basicType(left, map: right)
    }
}

您需要仔细研究他的每个重载才能了解它们的功能,他有 几十个 个。

Operators