找回密码
 加入
搜索
查看: 1606|回复: 3

代码效率优化讨论 (是否可以作为集中贴讨论?)

[复制链接]
发表于 2012-4-17 23:35:36 | 显示全部楼层 |阅读模式
本帖最后由 Qokelate 于 2012-4-17 23:55 编辑

1.

if $String then ____
if stringlen($string) then _____
if $string<>'' then _____
这个其实已经讨论过,本次收集只是为了集中处理   见 http://www.autoitx.com/thread-31448-1-1.html

2.

if not fileexists() then ________
与
if bitand(fileexists(),0) then _________

3.

;由字符串ab11cd 得到 ab66cd  ,假设11唯一
$string='ab11cd'
$NewString=stringreplace($string,'11','66')
与
$idx1 = StringInStr($string, '11', 0, 1)-1
$idx2 = StringInStr($string, '11', 0, -1)+1
$NewString = StringLeft($string, $idx1) & '66' & StringTrimLeft($string, $idx2)

本人无解,欢迎各抒己见,也欢迎提出你的优化讨论________          但请不要进行无关讨论,谢谢!!

评分

参与人数 1金钱 +10 收起 理由
user3000 + 10 有心了!

查看全部评分

发表于 2012-4-18 01:16:06 | 显示全部楼层
第2题,如果文件不存在,则。。。? 如果是这样,那应该改成:

if not fileexists() ...
if not bitand(fileexists(), -1) ...


任意数和0进行位“与”运算之后,总是等于0的。与-1进行位“与”运算,结果还是原数。很明显地直接if not fileexists()比较快一些。

第3题,直接stringreplace快,且不看这4个函数内部是怎样工作的,少了Au3解析器从“内核空间”切换到“用户空间”的过程。
 楼主| 发表于 2012-4-18 10:26:07 | 显示全部楼层
回复 2# pusofalse


    这个想错了,如果改成这样,会不会好点?

if not fileexists() ...
if bitand(fileexists()+1, 2) ...
发表于 2012-4-19 19:34:50 | 显示全部楼层
回复 3# Qokelate


    bitand(fileexists()+1, 2),文件存在时返回2,不存在时返回0,then... 后面的语句不会被执行的。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-25 18:55 , Processed in 0.072305 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表