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



为什么有些编程语言写完一句后要加分号? 第1页

  

user avatar   anthonyh 网友的相关建议: 
      

因为这些语言不区分空白字符!

需要加分号的语言中,换行和空格一样只是一个空白字符。所以我们认为换行可以结束一个语句时,在语法上只是增加了一个空格,所以真正结束一个语句需要分号或其它符号,比如{}

有些语言,比如python,区分不同的空白字符,换行就可以做为一个语句结束,不需要分号结束语句。

Javascript则很有意思,它是一个区分空白字符的语言,同时也是一个加分号的语言。比如最典型的语法结构,这里两个return之后空格和换行的含义不一样。

       function a() {    return     {        some: "object"    } } function b() {    return {        some: "object"    } }      

这里a = b后必须加分号

       a = b [1,2,3].forEach(function(e){     console.log(e) })     

进一步可以看这个答案:JavaScript 语句后应该加分号么? - 贺师俊的回答 - 知乎 zhihu.com/question/2029

也可以设计一个没有语句的语言,比如说lisp这类,它即不区分空白字符,也不使用分号(或其它符号)来结束语句。但它需要用()来分隔一个表达式的开始和结束。类似的,也有使用空白字符来区分表达式开始和结束的语言,比如 Dylan

语言设计的思想来看,认为空白字符是语言的重要部分,那么很可能不需要用分号,而是用空白字符来表示结束。反之也是如此,ALGOL的free style吧

说完了我想起来,C语言中,大部分语法是不区分空白字符,但C预处理器却是区分空白字符,很有意思。


user avatar   pansz 网友的相关建议: 
      

也许因为,它们的事态看起来并没有那么糟糕,所以没能感同身受吧。

其实就算武汉封城的时候,我还天真的以为,这次的疫情只是屁大点事。

直到我发现,官方公布的武汉单城市确诊数量竟然高达几万人。。。这才意识到武汉短短一个多月确实传染了太多的人,这才意识到这个病毒比我想象的要可怕很多。

欧美现在单城市破万的根本没有,甚至全国加起来都没破万,所以它们觉得这不是什么大事,也挺正常。

人类,大概总会是不见棺材不落泪的,等到它们也单城市确诊过万的时候,自然就会意识到,戴口罩一点也不好笑。




  

相关话题

  java的引用明明和指针没什么本质区别,java为什么还宣称没有指针并把这个当作语言的优点? 
  现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢? 
  为什么很多程序员不用 switch,而是大量的 if...else if ...? 
  c中struct 为什么可以在数据结构这样用? 
  C++,为什么有了include<iostream>,还需要using namespace std呢? 
  请问#define PI 3.1416比float pi=3.1416有什么优势呢? 
  江湖上流传着哪些关于R大RednaxelaFX的黑暗传说? 
  计算机专业学什么语言好找工作? 
  如果我发布了一款编程语言,后缀名是.c,那么这能算是一门新的编程语言吗? 
  如何在一个月内提高 C++ 水平? 

前一个讨论
如何评价即将发布的 C# 9.0?
下一个讨论
没有视觉的生物,它们的数学和物理学会是怎样的?





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