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

这篇具有很好参考价值的文章主要介绍了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))

  文章来源地址https://www.toymoban.com/news/detail-807297.html

到了这里,关于Swift whit Xcode 递归枚举实现(使用枚举模拟加减乘除复合运算)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AcWing94. 递归实现排列型枚举:输出1~n的全排列

    把 1∼ n n n 这 n n n 个整数排成一行后随机打乱顺序,输出所有可能的次序。 一个整数 n n n 。 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。 1 ≤ n ≤

    2024年02月06日
    浏览(37)
  • 只使用位运算实现加减乘除

    在线OJ: LeetCode 29. 两数相除 原题目的要求是不能使用乘法, 除法和取余运算符实现除法. 在本篇博客中把题目要求提高一点, 这里只使用位运算来实现, 顺便的也就把只使用位运算实现加减乘除实现了. 首先我们需要知道两数之和可以是两个数位相加和不进位相加之和, 而两数进

    2024年02月06日
    浏览(36)
  • AcWing93. 递归实现组合型枚举:输出从1~n中随机选出的m个整数

    从 1∼ n n n 这 n n n 个整数中随机选出 m m m 个,输出所有可能的选择方案。 两个整数 n , m , n,m, n , m , 在同一行用空格隔开。 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行内的数升序排列,相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数

    2024年02月07日
    浏览(25)
  • iOS开发Swift-枚举

    枚举:一组相关的值定义了一个共同的类型,使你可以在代码中以类型安全的方式来使用这些值。 原始值:定义枚举时被预先填充的值。 (1)整数为原始值时,隐式赋值递增1。未设置原始值时,默认为0,之后递增1. (2)字符串为原始值,隐式赋值为枚举成员的名称。

    2024年02月11日
    浏览(36)
  • iOS开发Swift-1-Xcode创建项目

    1.创建项目 双击Xcode App,选择Create a new Xcode project。  选择创建一个iOS普通的App项目。选择Single View App,点击Next。  填写项目名,组织名称等,点击next。  选择好文件的存储路径,点击create。  2.为前端添加组件 点击Main,选中View,在右下角show the Object library中找到label组件,

    2024年02月10日
    浏览(26)
  • mac使用Simulator打开IOS模拟器(不使用Xcode打开IOS模拟器)

    提示:打开模拟器的前提必须是安装了Xcode。 在mac电脑上有Xcode可以用来模拟不同类型的手机进行来解决ios兼容问题,这里记录一下不使用Xcode打开ios模拟器的方法 快捷键:command+空格。搜索simulator,第一个就是模拟器 使用以下命令打开模拟器 结果如下图

    2024年02月15日
    浏览(41)
  • Xcode 使用命令行手动添加模拟器 Xcode install Simulator from the command line

    在 Xcode 中可以使用 Settings - Platforms 来下载和管理各种设备的模拟器。 不过在很多时候,因为网络或者其他原因需要手动下载模拟器的 dmg 文件并且手动添加模拟器,可以使用如下命令来手动添加。 1. 去 Apple Developer 下载相应设备的 Xcode 和模拟器文件,这里以 Xcode 15.0 和 

    2024年02月08日
    浏览(32)
  • xcode14安装swift package设置github账户token

    登录github点击上面菜单自己的头像,settings-Developer settings-Personal access tokens-Tokens (classic)-Generate new token (classic) Note名字填写xcode 日期选择永久No expiration 勾选所有权限 然后点击最下面绿色按钮的Generate token 然后复制token 打开xcode点击左上角xcode -Settings-左下角的+加号- GitHub-Conti

    2024年02月12日
    浏览(26)
  • Xcode 离线使用命令行手动添加 iOS / watchOS 模拟器 Xcode install Simulator from the command line

    在 Xcode 中可以使用 Settings - Platforms 来下载和管理各种设备的模拟器。 不过在很多时候,因为网络或者其他原因需要手动下载模拟器的 dmg 文件并且手动添加模拟器,可以使用如下命令来手动添加。 1. 去 Apple Developer 下载相应设备的 Xcode 和模拟器文件,这里以 Xcode 15.0 和 

    2024年02月05日
    浏览(37)
  • Swift的高级语法特性,如可选类型、闭包、枚举、泛型、协议、扩展等

    Swift是一门现代化的编程语言,具有许多高级语法特性,下面我们来逐一介绍。 1. 可选类型(Optional) Swift中的可选类型是一种特殊的类型,它可以表示一个值是存在或不存在的。在声明一个可选类型时,需要在类型名称后面加上一个问号(?)来表示这个类型是可选的。例如

    2024年02月04日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包