for 时间复杂度是 n ,在 for 里放 if 代表机器会走 n 次 if 语义,在你的业务范畴里:前 n-1 项 if 分支的执行毫无意义,每多一语义每多一 cpu 时间片,虽然阅读起来易于理解,但实际不是更佳实践。
实际来看更有经验的程序员会选择第二种方式,这是更佳实践。这一操作看似是经验,实际包含了对计算机知识理论的认知深度和应用实践结合,maybe 对现在的你来讲属于新领域。纸上谈兵非计算机之道,这与你是什么学校毕业和他在什么公司待过没有必然逻辑关系。单单针对这一段代码而言,你们的认知层次不同,所以映照到现实实践的行为不同,更好的程序员像 AI ,会训练自己。
``` for i:=range array{ if i==len(array)-1{ // do sth special to array[len(array)-1] }else{ // do sth normal to array[i] } } ``` 这才和下面代码等效哦 ``` for i:=0;i<len(array-1);i++{ // do sth normal } // do sth special for array[len(array)-1]