В основном потому, что Mutating изменяет значение переменной внутри объекта.
lhs & rhs // Are parameter.
И параметр неизменен (константы) в Swift.
Поэтому вы можете клонировать эти параметры в новые объекты типа var
и использовать их изменяемые Value
.
И поскольку они имеют тип Struct
Тип значения , вы можете просто сказать это var newObj = myOldObj
.
Ваш код может быть примерно таким.
public static func < (lhs: Pitch, rhs: Pitch) -> Bool {
var lhsObj = lhs
var rhsObj = rhs
return lhsObj.value < rhsObj.value
}