首页 > 编程知识 正文

什么是unicode编码,中文编码

时间:2023-05-04 14:50:35 阅读:172920 作者:4665

硬码是硬码:

1、把本来应该(能)写在结构信息里的信息直接写在程序代码里死了

2、程序代码中出现了魔法值。

关于情况1,例如写了发送和接收邮件的程序。 将用户名、密码、服务器地址等配置信息作为外部配置,从程序代码中读取配置信息。 但是,如果我们直接写在程序代码里死了,每次更改信息都需要重新编译。 另外,在多个程序代码中产生这样的配置信息时,修改也很麻烦……这样的程序不容易维护。

在大多数程序语言中,可以将固定值定义为标记,然后用此特殊标记替换变量名称。 标记名称更改不会更改变量名称,因此重新编译整个程序时,所有变量都不是固定值,更改变量的目的更简单。

编辑器的检索替换功能也可以替换整个变量名,但是很多或者很少,另外,在计算机程序中,无论发生怎样小的错误都有可能引起很大的问题。

最好的方法是按照变量名划分空格来实现这样的变化。 将要更改的变量名称临时替换为预定义的标记名称。

关于案例2,魔法的值是指直接出现在代码中的数值,数值所表示的意思只有在记述数值的部分的代码中才能明白。

int [] array=new int[20]; for(intI=0; i 20; I ) system.out.print(Array[I]; }

在上面的示例中,如果数组的声明远离for循环,则很难知道for循环中控制条件i20的20是什么意思。 是数组的长度,还是根据要求定义的极限值? 意思可能会变得模糊。

魔法的值会大幅降低代码的可读性。 而且,如果同一个数值多次出现,谁也不知道这些数值到底有没有同样的意义。 另一方面,本来应该使用相同数值的地方,如果被错误使用的话就会变得难以注意到。 因此,应尽量避免使用魔术数字,并使用静态最终定义常量或使用枚举值。

staticfinalintlength _ of _ array=20; int [ ] array=new int [ length _ of _ array ]; for(intI=0; i LENGTH_OF_ARRAY; I ) system.out.print(Array[I]; }

上面的代码使用静态文件定义常量LENGTH_OF_ARRAY=20。 直接查看for循环中的控制条件i LENGTH_OF_ARRAY; 完全可以理解LENGTH_OF_ARRAY是什么意思(当然,必须明确变量的命名,并符合规范,别人才知道)。 这里,也涉及到为什么在i=0语句中可以直接使用常数0的问题。 这是因为大家的共识是0作为数组的最小下标。 这样写大家就能理解,所以没有必要声明那个。

ps:注:使用静态文件声明常量可以在以后保持更新。 修改变量值时只修改一个地方,不用担心修改其他不应该修改的常数。

hardcode是固化的代码,通常应该避免使用hardcode方法。 有些代码不能死。 否则,维护就麻烦了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。