代码改变世界

第十章 使用变量的一般事项

2016-12-13 20:32  卡斯撸代码  阅读(214)  评论(0编辑  收藏  举报

内容:10.1 数据认知

        10.2轻松掌握变量定义

        10.3变量初始化原则

        10.4作用域

        10.5持续性

        10.6绑定时间

        10.7数据类型和控制结构之间的关系

        10.8为变量指定单一用途

10.1看你能知道多少个,0-4新手 15-19中级 20-24专家  25-29可以了  30-32你在撒谎

 10.2轻松掌握变量定义

       隐式声明:关闭隐式声明

                    声明全部的变量

                    遵循某种命名规则

                   检查变量名

10.3变量初始化原则

     1、 在声明的时候初始化

     2、 在靠近变量第一次使用的位置初始化它

     3、理想情况下,在靠近第一次使用变量的位置声明和定义变量

     4、在可能的情况下使用final 或者const

     5、特别注意计数器和累加器

     6、 在类的构造函数里初始化该类的数据成员

     7、 检查是否需要重新初始化

     8、  一次性初始化具名常量;用可执行代码来初始化变量

     9、使用编译器设置来自动初始化所有变量

     10、  利用编译器的警告信息

     11、检查输入参数的合法性

     12、使用内存访问检查工具来检查错误的指针

     13、在程序开始时初始化工作内存

 

10.4作用域

     1、使用变量引用局部化

     2、尽可能缩短变量的存活时间

           测量变量的生存时间:可以用来写个工具测试从开始定义到最后使用有多少行

     3、减少作用域的一般原则 

               在循环开始之前再去初始化该循环里使用的变量

              直到变量即将被使用时再为其赋值

              吧相关语句放到一起

              把相关语句组提取成单独的子程序

              开始时采用最严格的可见性,然后根据需要扩展变量的作用域

     4、有关缩小变量作用域的说明

 10.5持续性

      1、 使用断言来判断是否合理

      2、抛弃变量时给它赋 一个不合理的 值  例如指针赋null

      3、编写代码时要假设数据并没有持续性

      4、养成在使用所有数据之前声明和初始化的习惯

10.6绑定时间

       绑定时间越晚越有利

    编码时

   编译时

   加载时

  对象实例化时

   即时

 

10.7 数据类型和控制结构之间的关系

     序列型数据翻译为程序中的顺序语句

    选择型数据翻译为程序中的if和case语句

   迭代型数据翻译成程序中的for  repeat  while 等循环结构

10.8为变量指定单一用途

    每个变量只用单一用途

    避免让代码具有隐含含义

    确保使用了所有已声明的变量