前言
- 最近在复读《C Primer Plus》其中有一部分内容给出了声明变量的好处。
- 了解我的读者应该知道我之前使用的主语言是JAVA,要使用一个变量那必然需要事先声明,这是毫无疑问的事情。所以当然从来也没有思考过为什么要声明变量~
- 现在流行的语言Python允许不声明变量直接使用。
- 类型有强弱之分,这里也思考下强弱类型在声明的时候有哪些好处。
正文
C Primer Plus的原文提炼
- 把所有变量放在一起可以让读者更容易掌握程序的内容。
- 给变量起个有意义的名称。例如次数
times
会比一个a
更加容易理解。 - 如果变量的含义深,加个注释。对于英语不好的同学来说
times
可能会理解成时间啥啥的,加个注释友善提醒下是次数的意思。
- 编程之前考虑下需要哪些变量,促使你做一些计划工作。
- 避免程序中出现难以发现的细微错误,即变量名的拼写错误。例如
RADIUSI
和RADIUS1
是两个变量,但是乍一看分不出来。 - 如果没有声明变量将不能编译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)
不声明变量的好处:
- 代码量可能会减少。你想下少了类型的声明是不是少了代码量哈哈哈=_=!
# 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_money
, i
代表int
,s
代表string
,d
代表double
。这种方式可以清晰的get到变量的类型,感觉在弱类型语言使用挺合适的。但是也有点繁琐吧,使用也是因人而异的。