前言

  • 最近在复读《C Primer Plus》其中有一部分内容给出了声明变量的好处。
  • 了解我的读者应该知道我之前使用的主语言是JAVA,要使用一个变量那必然需要事先声明,这是毫无疑问的事情。所以当然从来也没有思考过为什么要声明变量~
  • 现在流行的语言Python允许不声明变量直接使用。
  • 类型有强弱之分,这里也思考下强弱类型在声明的时候有哪些好处。

正文

C Primer Plus的原文提炼

  1. 把所有变量放在一起可以让读者更容易掌握程序的内容。
  • 给变量起个有意义的名称。例如次数times会比一个a更加容易理解。
  • 如果变量的含义深,加个注释。对于英语不好的同学来说times可能会理解成时间啥啥的,加个注释友善提醒下是次数的意思。
  1. 编程之前考虑下需要哪些变量,促使你做一些计划工作。
  2. 避免程序中出现难以发现的细微错误,即变量名的拼写错误。例如RADIUSIRADIUS1是两个变量,但是乍一看分不出来。
  3. 如果没有声明变量将不能编译C程序。

个人思考

第1点、第2点赞同。第4点有点废话。
关于第3点,不太理解。无论是哪种类型。一个未被声明的变量在编译的时候也会被报错。所以看不出来好处。

看下Python:

RADIUSI = 5
print(RADIUS1)

# 编译后报错
NameError: name 'RADIUS1' is not defined

同样C也会做相应的报错。

error: 'RADIUS1' undeclared (first use in this function)

不声明变量的好处:

  1. 代码量可能会减少。你想下少了类型的声明是不是少了代码量哈哈哈=_=!
# python代码
price = 6
count = 5
total_price = price * count
print(total_price)
// java 代码
int price = 6;
int count = 5;
int total_price = price * count;
System.out.println(total_price);

强弱类型的声明差异:

声明一个强类型相当于固定这个变量的使用范围, 弱类型没有这个限制,但是会显得代码不清晰,就有点违背了上面的第一点原则:

temp = 100
print(temp)
temp = "hello world"
print(temp)
temp = {1, 2, 3, 4}
print(temp)
temp = [1,2]
print(temp)

对,如果是工程中看到这种写法,估计是有点想吐的。。。

变量命名技巧

这个补充一个书里看到的技巧,但是更多的时候还是一种约定。即:给变量名带上类型缩写。

例如声明变量 i_num, s_title, d_moneyi代表ints代表stringd代表double。这种方式可以清晰的get到变量的类型,感觉在弱类型语言使用挺合适的。但是也有点繁琐吧,使用也是因人而异的。