原始网页直通车

总结一下大佬们提出的方法:

  1. kotlin 中可以使用 when 关键字;

    val result = when {x in 1..10 -> xy.isOdd() -> "y is odd"s.contains("hello") -> sv is ViewGroup -> "child count: ${v.getChildCount()}"else -> "..."
    }when (x) {1 -> println("x == 1")2 -> println("x == 2")else -> {println("x 既不是 1 ,也不是 2")}
    }
    
  2. 对于简单的,类似 if (x == ...) 这样的判断,可以使用 switch 代替;

  3. 把一部分的 if ... else ... 封装成方法;

  4. 将能够 return 的判断提前 return

    // 看下面这个例子
    // HasAccess 方法里面包含一些嵌套条件,如果再加一些条件或者增加复杂度,这个右箭头就会变得越来越长
    public bool HasAccess(User user, Permission permission, IEnumerable<Permission> exemptions) {bool hasPermission = false;if (user != null) {if (permission != null) {if (exemptions.Count() == 0) {if (SecurityChecker.CheckPermission(user, permission)) {hasPermission = true;}}}}return hasPermission;
    }// 精简一下
    public bool HasAccess(User user, Permission permission, IEnumerable<Permission> exemptions) {if (user == null || permission == null)return false;if (exemptions.Contains(permission))return true;return SecurityChecker.CheckPermission(user, permission);
    }
    
  5. 使用设计模式:如 策略模式责任链模式

参考链接
Refactoring Day 24 : Remove Arrowhead Antipattern

对于代码中有大量的 if/else 有什么优化思路?相关推荐

  1. 机器学习:SVM代码实现,朴素实现基础上的优化

    SVM代码实现,朴素实现基础上的优化: 因为二次凸优化已经把解析结果明白表现出来了,所以优化只能体现在两个变量的选择上,或者说是两个样本的选择上: 1.第一个变量的选择:这次实现也并不是选择最不满足K ...

  2. 在学习js的然后写代码的过程中我老是找不到思路怎么办?

    在学习js的然后写代码的过程中我老是找不到思路怎么办? 写的少了,边写边思考: 刚刚学习的阶段,还是要多写,多借鉴别人的代码. 转载于:https://www.cnblogs.com/helloy/p ...

  3. 力扣225-用队列实现栈(C++,附思路及优化思路,代码)

    思路: 想到之前用栈模拟队列的题目(232题)用了两个栈,一个主栈,一个辅助栈,这个题目里直接提示用两个队列,想必第二个队列的功能应该也是类似于辅助的功能.(联想) 这样就可以先写出empty()的代 ...

  4. MATLAB代码:电-气-热综合能源系统耦合优化调度 代码主要做的是一个考虑电网、热网以及气网耦合调度的综合能源系统优化调度模型

    MATLAB代码:电-气-热综合能源系统耦合优化调度 关键词:综合能源系统 优化调度 电气热耦合 仿真平台:MATLAB YALMIP+cplex/gurobi 主要内容:代码主要做的是一个考虑电网. ...

  5. 对樱花树代码的一点优化思路(一)

    对画樱花树代码的一点优化思路 第一次写博客,多有不当之处,敬请指导改正. 如有侵权(可能),请联系本账号删除 这里没有对花瓣飘落代码进行分析,写博客是为了激励自己每天敲代码 各位一起加油啊(ง •_• ...

  6. 基于元模型优化的虚拟电厂主从博弈优化调度模型基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理 代码主要做的是虚拟电厂的优化调度策略,其实是多虚拟电厂/微网的优化调度策略,模型为双层,首先下层

    MATLAB代码:基于元模型优化的虚拟电厂主从博弈优化调度模型 关键词:元模型 虚拟电厂 主从博弈 优化调度 参考文档:<基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理>复现元模 ...

  7. 代码中有个get是啥意思_是时候秀一波了,甩掉get和set,Lombok让代码更简洁

    前言 前几天有个新来的同事(实习生)惊讶的对我说:我们的代码里好多错误,我的程序本地都启动不了. 我一脸懵逼的质问他:目前线上的代码,怎么会有问题吗? 他不服气的说:你来看嘛,就是有问题,Dao实体g ...

  8. clear html5代码,clear在代码中有哪几种应用

    css高手请看一下下面代码中clear用法是否正确? eclipse中代码怎么调用clear 你想clear 什么? 或者 什么clear? 垃圾回收的话,jvm 自动的,一般开发不需要手工的回收 其 ...

  9. python中赋值运算符有哪些_Python代码中有哪些赋值运算符呢?

    摘要: 下文讲述Python代码中赋值运算符的相关的简介说明,如下所示: 赋值运算符主要用于赋值操作, 用于为对象赋值, 那么Python中赋值运算符到底有哪些呢? 下文将一一道来,如下所示: 赋值运 ...

最新文章

  1. JVM运行时数据区---方法区(前言)
  2. 关于java代码生成器---上篇之原理
  3. Rxjava之操作符distinct和elementAt
  4. html标签处理数据时合并空格
  5. 饿了么4年+阿里2年:研发路上的一些总结与思考
  6. Linux基础操作-分区概念
  7. Data Source与数据库连接池简介 JDBC简介(八)
  8. archlinux安装个简单桌面icewm
  9. 数据结构与算法基础-02
  10. OC 和 swift 小结
  11. ondestroy什么时候调用_程序员最害怕的是什么—函数
  12. 【第105期】游戏策划:应聘简历的附件那些事
  13. 神经网络和深度学习(一)——初识神经网络
  14. @linux下tar解压失败a lone zero解决方法
  15. 伯禹 动手学深度学习 打卡08 之 深度卷积神经网络(AlexNet)
  16. android emulator 安装 google play
  17. MTTF MTBF MTRF
  18. 3.堆栈指针寄存器 SP 详解
  19. 文件内容中显示(SOH、STX、ETX)
  20. 启明星辰产品解读_堡垒机

热门文章

  1. C++学生考勤管理系统报告
  2. 软件工程实践总结——积少成多
  3. python 操作auto cad
  4. GridAdaptedFeatureDetector 编译错误定位
  5. PHP防止SQL注入自带函数分析
  6. 青岛计算机操作员初级考试时间,青岛市2021年初级会计考试时间安排在这里!...
  7. 是走,是留? 跳槽前6个关键问题须清楚
  8. 主机是win10,虚拟机是ubuntu,虚拟机无线联网的方法
  9. 虚拟机、手机与电脑主机之间的通信练习
  10. 手机移动APP的测试