使用go语言递归查找指定目录下的文件,根据正则匹配筛选出需要的文件,并且忽略指定的目录
创新互联于2013年成立,先为新泰等服务建站,新泰等地企业,进行企业商务咨询服务。为新泰企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
先使用 ioutil.ReadDir 遍历出指定目录下的文件,再递归进目录中遍历,问题的关键在于识别出文件为目录, fs.FileInfo 中有一个 IsDir() 函数可以识别是否是目录
正则匹配使用 regexp.MatchString ,regexp中有很多正则操作的工具,如根据正则替换字符串中的指定字符
给定一个正整数n计算出对应斐波那契数列对应的值
说明:
用mackbookpro i7 2.7GHZ笔记本进行测试,结果如下:
备注: 当n=80时,由于测试等待时间过长,强制中断了执行。
从测试结果看出,当n逐渐增大,递归方式计算斐波拉契数列的时间复杂性急剧增加。当n值较大时可以考虑用循环方式代替。
类似的方式也可以用于,求阶乘、遍历目录、汉诺塔等问题的解决。在后期的文章中,我将这些内容进行补充,敬请期待,谢谢。
1、工作方式上的区别
递归查询是域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机。
迭代查询是能够使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机 地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询。
2、使用上的区别
一般由DNS工作站提出的查询请求便属于递归查询。一般发生在客户端与服务器间,也有特殊情况是dns服务器与dns服务器之间。
根域名服务器总应该使用迭代查询,而不应该使用递归查询。一般的,每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。
3、查询状态上的区别
递归查询,在域名服务器查询期间,客户机将完全处于等待状态。
迭代查询是直到服务器给出的提示中包含所需要查询的主机地址为止。
参考资料来源:百度百科-递归查询
参考资料来源:百度百科-迭代查询