代码习惯

博客指出新手常见的不好代码习惯是不使用临时变量,如在循环中多次调用函数。这种做法会导致代码冗长易出错、影响性能、不利于调试和抽象子函数。使用临时变量可避免这些问题,而新手出现此习惯可能是缺乏抽象能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    新手总是有很多不好的代码习惯. 最常见的一个是不使用临时变量.例如
    for(int i=0;i<myList.size();i++){
        otherList.get(i).getSomeVar().getName();
        otherList.get(i).getSomeVar().getValue();
    }
    这种做法有如下后果:
    1. 代码冗长, 容易出错, 例如循环体中的某个i写成了j
    2. 函数调用终究是要耗费时间的, 在一个循环体中的调用往往对性能有可见的影响. 特别是当函数动态装载数据的时候, 例如每次调用该函数都查询数据库, 这种不使用临时变量的方法将会为系统留下性能隐患.
    3. 一条很长的语句如果不是为流式调用而设计的, 则这种调用方式会影响到我们的调试工作. 例如 当某个中间步骤返回空指针时, 程序会抛出NullPointerException异常, 而我们得到的信息只是某一行存在空指针异常, 但是无法定位到具体是哪个步骤. 当某个中间步骤返回的值不是null但也不是我们所期望的值的时候, 我们同样难以诊断出具体出错的步骤. 使用临时变量将会为调试提供便利
      int i,n=myList.size();
      for(i=0;i<n;i++){
          MyVar var = otherList.get(i);
          var.getName();
          var.getValue();
          ...
      }
      在需要的时候我们可以在出错语句处加上断点, 或者直接输出可疑的变量值.
    4. 长语句不利于抽象出子函数. 例如在第二种方式中我们抽象出子函数的难度比第一种方式小
       void processVar(MyVar var){
           var.getName();
           var.getValue();
       }

    造成这些习惯的原因很耐人寻味, 我猜想缺乏抽象能力似乎是最基本的原因, 毕竟为变量起一个名字也是最简单的抽象步骤之一.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值