zoukankan      html  css  js  c++  java
  • swift-模式匹配 && override ~= operator

    Swift的switch使用 ~= 操作符进行模式匹配,case A, A是~=操作符的左参数,switch B, B是~=操作符的右参数。swift隐式调用 ~=操作符。

    所以自定义模式匹配的方法如下:

    e.g.1

    enum Day: Int {
        case Monday, TuesDay, Wednesday, Thursday, Friday, Saturday, Sunday
    }
    func ~= (lhs:Int, rhs:Day) ->Bool {
        return lhs == rhs.rawValue + 1
    }
    
    class Tutorial {
        let day:Day?
        ...
    }
    
    extension Tutorial {
        var order: String {
            guard let day = day else {
                return "not scheduled"
            }
            
            switch day {
            case 1:
                return "first"
            case 2:
                return "second"
            case 3:
                return "third"
            case 4:
                return "fourth"
            case 5:
                return "fifth"
            case 6:
                return "sixth"
            case 7:
                return "seventh"
            default:
                fatalError("invalid")
            }
            
        }
    } 

    e.g.2

    http://swifter.tips/pattern-match/

  • 相关阅读:
    五,系统操作命令说明
    三,linux系统的由来
    二,服务器磁盘阵列(raid)
    一服务器硬件介绍
    四,元组类型
    集合类型
    字典类型
    三,列表类型
    二,字符串类型
    一,数字类型
  • 原文地址:https://www.cnblogs.com/HackHer/p/8509667.html
Copyright © 2011-2022 走看看