支季雅 发表于 2025-6-3 11:38:35

Swift whit Xcode 递归枚举实现(使用枚举模拟加减乘除复合运算)

//递归枚举值实例
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))  

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

钱艷芳 发表于 2025-11-13 07:37:26

分享、互助 让互联网精神温暖你我

撒阗奕 发表于 2025-12-12 01:05:54

谢谢分享,试用一下

讲怔 发表于 2025-12-15 18:07:47

谢谢分享,辛苦了

骆贵 发表于 2025-12-17 15:06:59

东西不错很实用谢谢分享

劳暄美 发表于 2025-12-25 02:55:47

东西不错很实用谢谢分享

澹台吉星 发表于 2026-1-16 06:47:25

谢谢分享,辛苦了

材部 发表于 2026-1-18 08:13:30

鼓励转贴优秀软件安全工具和文档!

酝垓 发表于 2026-1-18 09:14:56

感谢,下载保存了

锑砖 发表于 2026-1-24 11:42:34

收藏一下   不知道什么时候能用到

恿榫 发表于 2026-1-27 02:32:18

东西不错很实用谢谢分享

归筠溪 发表于 2026-1-27 05:48:59

分享、互助 让互联网精神温暖你我

呈步 发表于 2026-1-27 07:44:55

鼓励转贴优秀软件安全工具和文档!

史华乐 发表于 2026-2-3 03:18:29

感谢分享,学习下。

全阳霁 发表于 2026-2-5 09:34:28

这个有用。

材部 发表于 2026-2-5 09:44:58

感谢,下载保存了

铜坠匍 发表于 2026-2-6 11:40:23

感谢,下载保存了

沦嘻亟 发表于 2026-2-8 21:49:32

这个好,看起来很实用

劳暄美 发表于 2026-2-10 11:16:11

喜欢鼓捣这些软件,现在用得少,谢谢分享!

劳欣笑 发表于 2026-2-10 11:34:10

鼓励转贴优秀软件安全工具和文档!
页: [1] 2
查看完整版本: Swift whit Xcode 递归枚举实现(使用枚举模拟加减乘除复合运算)