zoukankan      html  css  js  c++  java
  • swift Equatable 的缺省实现

    Starting from Swift 4.1, all you have to is to conform to the Equatable protocol without the need of implementing the == method. See: SE-0185 - Synthesizing Equatable and Hashable conformance.

    Example:


    Keep in mind that the default behavior for the == is to compare all the type properties (based on the example: lhs.id == rhs.id && lhs.value == rhs.value). If you are aiming to achieve a custom behavior (comparing only one property for instance), you have to do it by yourself:

    At this point, the equality would be based on the id value, regardless of what's the value of value.

    https://stackoverflow.com/questions/37541512/swift-struct-doesnt-conform-to-protocol-equatable

    猜测:下面两者的签名形式应该是相同的

    /// Represents a response to a `MoyaProvider.request`.

    public final class Response: CustomDebugStringConvertible, Equatable {

        public static func == (lhs: Response, rhs: Response) -> Bool {

            return lhs.statusCode == rhs.statusCode

                && lhs.data == rhs.data

                && lhs.response == rhs.response

        }

    }

    public func ==(lhs: ConstraintItem, rhs: ConstraintItem) -> Bool {

        // pointer equality

        guard lhs !== rhs else {

            return true

        }

        

        // must both have valid targets and identical attributes

        guard let target1 = lhs.target,

              let target2 = rhs.target,

              target1 === target2 && lhs.attributes == rhs.attributes else {

                return false

        }

        

        return true

    }

  • 相关阅读:
    iOS微信打开App
    HTTP请求中的Form Data与Request Payload的区别
    iPhone设备分辨率一览
    iOS JS与原生交互(全集)
    iOS与导航相关的都在这
    iOS论App推送方案
    iOS接收远程通知响应方法
    iOS10以前的本地通知和远程通知
    手写一个MVVM
    react组件中返回并列元素的方法
  • 原文地址:https://www.cnblogs.com/feng9exe/p/9856567.html
Copyright © 2011-2022 走看看