我是Swift的新手,第一次看到在Swift中使用后退箭头和连字符。我可以猜测这是在下面的代码中分配一个值,但是为什么不能只使用等号=?我们什么时候要使用左尖括号<-代替=号? <-有其他用例吗?这是使用此<-from https://github.com/tristanhimmelman/ObjectMapper的代码。库中声明 ObjectMapper使用<-运算符定义每个成员变量与JSON的映射方式。,这是否意味着该运算符是由该库发明的,并且仅适用于该库?
struct Temperature: Mappable {
var celsius: Double?
var fahrenheit: Double?
init?(map: Map) {
}
mutating func mapping(map: Map) {
celsius <- map["celsius"]
fahrenheit <- map["fahrenheit"]
}
}
答案 0 :(得分:1)
是的,它是在ObjectMapper,IntegerOperators.swift以及其他我未检查过的地方定义的。
https://github.com/tristanhimmelman/ObjectMapper/blob/master/Sources/IntegerOperators.swift
该模块中有多个用于各种参数类型组合的运算符定义。示例:
public func <- <T: UnsignedInteger>(left: inout T, right: Map) {
switch right.mappingType {
case .fromJSON where right.isKeyPresent:
let value: T = toUnsignedInteger(right.currentValue) ?? 0
FromJSON.basicType(&left, object: value)
case .toJSON:
left >>> right
default: ()
}
}