百科问答小站 logo
百科问答小站 font logo



代码之间为什么要加空格? 第1页

  

user avatar   pansz 网友的相关建议: 
      

加空格并不是为了美观。只是为了标识族群的位置。

在题主举例的场景,确实并不需要加空格。

我来给题主举个需要加空格的例子:

       Thisisavarofthings=yourfuckingtype+otherdamnedresult*me; oh=mygodblessedsweetheart-thesaintangel/cursedcorpsehere;     

看看上面的组合,你能一眼看出来每个符号在哪吗?

比较一下这个:

       Thisisavarofthings = yourfuckingtype + otherdamnedresult * me; oh = mygodblessedsweetheart - thesaintangel / cursedcorpsehere;     

你还觉得两者仅仅只是美观问题?

对于这个问题,我总结一下:如果代码风格规定了更完整,更具有解释意义的变量名称,那么变量名称就会很长,而空格的价值在于将变量名称有效的分离成组团,提升辨识度。

如果你只使用单字母作为变量名,那么空格确实是没有必要的。

简要的说,加空格是为了辅助分组,而不是一味的加。

--

有一种情况是无条件加空格:关键字之后加空格,原因在于避免它看起来像一个函数调用。

例如 if return while sizeof 之类的关键字,后面无条件加空格,毕竟一个关键字直接加一个括号看起来有点像函数调用。——同样的道理,函数名称与相邻的括号之间,就禁止加空格了。

--

至于那个 if 的判断问题。其实你看过 C++ 作者的书就懂了。

C++作者对这个问题的意见是,他设计C++的时候,希望 0 值是一个无类型值,可以针对所有类型的变量使用,这样对模板编程更加方便。因为无论模板 T 是什么类型都可以与 0 值进行操作。

而 if 语句的目的,就是用来判断 0 与 非零 两种状态。

所以,C++作者规定了 if (xxx==true) 是错误写法,因为不可以将值与布尔量进行比较,布尔量只能当作逻辑量进行运算。

至于你认为 if (!xxx) 不够清晰,有个方法可以替换:

       if (xxx) { } else {    // 请开始你的表演 }     

这个意思是:你可以用 if/else 结构写一个空的真分支,而在假分支写上需要的代码,这种情况下可以清晰的看出这段代码在条件为假时运行。

无论如何,将布尔量与布尔常量true/false进行比较的做法确实是违背C++设计思想的,在C++中,true/false常量只能用于赋值,不能用于比较,在其他语言中才可以

       if (xxx==true) // 错误,布尔量不可直接比较 if (xxx) // 正确  if (yyy==false) // 错误,布尔量不可直接比较 if (!yyy) // 正确  if (xxx==true && yyy==false) //  错误,布尔量不可直接比较 if (xxx && !yyy) // 正确  if (xxx == yyy) // 错误,布尔量不可直接比较 if ( (xxx&&yyy) || (!xxx&&!yyy) ) // 正确  if (xxx != yyy) // 错误,布尔量不可直接比较 if ( (xxx&&!yyy) || (!xxx&&yyy) ) // 正确     



  

相关话题

  你遇到过哪些高质量的 C++ 面试? 
  这是什么文字代码? 
  怎么编程实现if,不使用if关键字? 
  如何看待「大部分程序员只会写三年代码」的说法? 
  为什么有很多人执着于中文编程? 
  能看得懂编程,但自己写却一点都写不出来怎么办? 
  有没有一段代码,让你为人类的智慧击节叫好? 
  在 Windows 上不用 Win32 API 可以绘制出一个窗口么? 
  低代码开发以后有前景么?会不会最后一地鸡毛? 
  为什么现在会有这么多种编程语言? 

前一个讨论
你所学的研究生专业叫什么名字?
下一个讨论
同样有很多骗子,为什么书法没有像中医,传统武术那样被人黑呢?





© 2025-03-25 - tinynew.org. All Rights Reserved.
© 2025-03-25 - tinynew.org. 保留所有权利