美文网首页
微习惯养成第二天——读代码大全18章 表驱动法

微习惯养成第二天——读代码大全18章 表驱动法

作者: 天天one | 来源:发表于2017-07-14 00:58 被阅读30次

第18章 表驱动法

18.1 表驱动法使用总则(General considerations in using table-driven methods)

表驱动法是一种编程模式(scheme),从表里面查找信息而不是使用逻辑语句(if和case)。事实上凡是能通过逻辑语句来选择的事物都可以通过查询表来选择。相比较逻辑语句,表驱动法更加简单,容易修改,而且效率高。

举例说明(伪代码):

假设你希望把字符划分为字母,标点符号,数字三类,如果使用逻辑语句实现:

if((input >='a' && input <= 'z') || input >='A' && input <= 'Z'){
    charType = 字母;
}else if(input is '', ',' ,' .','!','-','(',')' ...etc){
    charType = 符号;
}else if(input >= 0 && input <= 9){
    charType = 数字;
}

如果要使用表查询法,则可以把每个字符的类型保存到一个用字符编码访问的数组里,类似一维数组:

字符数组索引 字符类型
a 字母
... ...
Z 字母
, 符号
... ...
/ 符号
1 数字
... ...
9 数字

然后就会产生如下的查询:

charType = charTypeTable[inputChar]

表驱动法的两个问题(Two issues in using table-drvien methods)

使用表驱动法必须要解决两个问题:

  1. 怎样从表中查询条目;
  • 直接访问(direct access)
  • 索引访问(indexed access)
  • 阶梯访问(Stair-step access)
  1. 你应该在表里存些什么;

相关文章

  • 微习惯养成第二天——读代码大全18章 表驱动法

    第18章 表驱动法 18.1 表驱动法使用总则(General considerations in using t...

  • 代码大全2 - 表驱动法

    最近入手了 代码大全2,真实程序员的圣经啊,内容好高端啊,书中建议的初级程序员看的章节就是:表驱动法,真 NM N...

  • 表驱动法在iOS中的应用

    表驱动法(Table-Driven Methods)出自《代码大全》。它是一种编程模式——从表里面查找信息而不使用...

  • 表驱动法学习与实践-第一篇-2018/02/07

    什么是表驱动法 我认为,表驱动法,字如其名。就是用表格自身的逻辑来代替代码里的条件判断硬逻辑。举例如下:如果,我们...

  • iOS表驱动法去除if-else简化逻辑

    今天介绍用表驱动法优化代码中的逻辑 去除复杂繁多的if-else判断 WMZStrategy(demo) 所谓表...

  • 如何优化代码中大量的if/else,switch/case?

    如何优化代码中大量的if/else,switch/case?1、使用枚举2、善用Optional3、表驱动法4、提...

  • 代码规范 : 表驱动法(远离if switch)

    表驱动法的准则 使用表驱动法的关注的两个核心问题: 1 怎样从表中查询条目的问题; 2 应该在表里面存什么两个核心...

  • 表驱动法

    简书 賈小強转载请注明原创出处,谢谢! 表驱动法是一种编程模式(scheme)--从表里面查找信息而不使用逻辑语句...

  • 表驱动法

    Table-Driven Approach表驱动法 表驱动法,用查表的方法获取数值 我们平时查字典以及念初中时查《...

  • 表驱动法

    表驱动法:表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。事...

网友评论

      本文标题:微习惯养成第二天——读代码大全18章 表驱动法

      本文链接:https://www.haomeiwen.com/subject/pgbihxtx.html