网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > Swift >

Swift whit Xcode 递归枚举实现(使用枚举模拟加减乘

时间:2020-04-23 22:00

人气:

作者:admin

标签:

导读://递归枚举值实例 enum Expression{ //单个数值 case num(param:Int) //表示加法运算 将Expression作为相关值参数类型 indirect case add(param:Expression,param2:Expression) //表示减法运算 将Ex...
//递归枚举值实例
enum Expression{
    //单个数值
    case num(param:Int)
    //表示加法运算 将Expression作为相关值参数类型
    indirect case add(param:Expression,param2:Expression)
    //表示减法运算 将Expression作为相关值参数类型
    indirect case sub(param:Expression,param2:Expression)
    //表示乘法运算 将Expression作为相关值参数类型
    indirect case mul(param:Expression,param2:Expression)
    //表示除法运算 将Expression作为相关值参数类型
    indirect case div(param:Expression,param2:Expression)
}
//使用递归枚举实现((4+4)*2-8)/2的复合表达式
//创建单值4
var num = Expression.num(param: 4)
//进行4+4运算
var num4Add4 = Expression.add(param: num, param2: num)
var num2 = Expression.num(param: 2)
//进行(4+4)*2
var numMul2 = Expression.mul(param: num4Add4, param2: num2)
var num3 = Expression.num(param: 8)
//进行(4+4)*2-8
var numSub8 = Expression.sub(param: numMul2, param2: num3)
var num4 = Expression.num(param: 2)
//进行((4+4)*2-8)/2
var numDiv = Expression.div(param: numSub8, param2: num4)

//定义功能方法
func expressionFunc(param:Expression)->Int{
    switch param {
    case let .num(param: val):
        return val
    case let .add(param: val1, param2: val2):
        return expressionFunc(param: val1)+expressionFunc(param: val2)
    case let .mul(param: val1, param2: val2):
        return expressionFunc(param: val1)*expressionFunc(param: val2)
    case let .sub(param: val1, param2: val2):
        return expressionFunc(param: val1)-expressionFunc(param: val2)
    case let .div(param: val1, param2: val2):
        return expressionFunc(param: val1)/expressionFunc(param: val2)
    }
}
//方法调用
print(expressionFunc(param: numDiv))

  

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
  • iOS 17新特性以及适配细节汇总

    iOS 17新特性以及适配细节汇总

    1、UIScrollView增加了属性allowsKeyboardScrolling表示是否根据连接的物理键盘的方向键...
  • 最近几天

    最近几天

    8.03周四 一大早电话吵醒,着急给我妈送卡,早上坐车去延安,顺便下来玩玩,...
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信