for 循环语句优化,不限语种(PHP、JAVA、Python等)

Last modified date

Comments: 0

今天在学习 go 代码时受到的一些启发或者算是提醒吧,帮助自己写出更好的代码片段

你会忽略的一些 for 循环优化方案

以下代码案例使用PHP编写,需要其他语言可以自行转换

通常我们在使用 for 语句进行循环时,有时候会使用数组长度的判断,字符串长度的判断等一系列函数操作的返回值作为判断语句,请先看下边的案例

<?php
    $arr = array(1, 2, 3, 4);
    for($i = 0; $i < count($arr); $i++) {
        echo $i;
    }

    $str = "hello world";
    for($i = 0; $i < strlen($str); $i++) {
        echo $i;
    }

通过上边的语句我们并不能发现问题所在,但是想象一下 $arr 数组有几百甚至上千、上万的数据,$str 同样也是几百甚至上千的长度,这时候你的每一次循环都会解析数组的长度或者字符串的长度作为判断语句的条件,这是非常消耗性能的。

通常会建议对需要进行函数处理的判断条件在循环之前进行单独的变量赋值或者处理,减低循环时运算的压力提高程序性能

所以正确的做法是

<?php
    $arr = array(1, 2, 3, 4);
    $arr_len = count($arr)
    for($i = 0; $i < $arr_len; $i++) {
        echo $i;
    }

    $str = "hello world";
    $str_len = strlen($str);
    for($i = 0; $i < $str_len; $i++) {
        echo $i;
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Post comment