2015-04-03 81 views
-4

通常,使用空间让程序看起来很容易组织起来,这是一种很好的编程风格。例如,在数学运算之间,有组织的程序员经常会放置空间。Java中的空间意味着什么?

但我也看到的是使用骆驼案件的人。像outOfBoundException一样。

为什么程序员不能使用空格而不是在骆驼案例中编写名字/标识符

+1

你的意思是为什么*不能*他们? – 2015-04-03 01:45:55

+0

是的,编辑谢谢 – user11355 2015-04-03 01:46:44

+2

你给的例子,'OutOfBoundsException'实际上被称为picket case。骆驼案例更像'outOfBoundsException'... – user700390 2015-04-03 01:48:07

回答

1

由空格分隔的变量单词将被解释为多个变量。编译器无法理解您的意思是单个变量。在数学中,通常使用单个字母符号。歧义存在于我们的日常语言中,但编程语言无法承受。现在,使用骆驼案件分开单词只是一个惯例。您可能会用其他语言突出显示。然而,它对所得到的应用程序几乎没有影响。搜索Google命名约定。你可能还想看看“约定优于配置”,以及Python中的空格缩进如何完全改变。另请注意,Excel公式中的空格表示相交。

1

为了避免歧义。

例如,

StringBuilder firstStringBuilder 

声明一个StringBuilder可变称为firstStringBuilder

但是,如果你写

string builder first string builder 

,那么什么是类名,什么是变量名?编译器是否应将其解释为String builderFirstStringBuilder?所以使用空间是不可行的。

5

你如何在表格中写下你的名字Doeser或D O E S E R? 对象名称是一个身份,这就是为什么我们不能在名称之间使用空格。

Java中的空白用于分隔Java源文件中的标记。在某些地方,如访问修饰符,类型名称和标识符之间需要空格,并用于提高其他地方的可读性。

Java有一些命名convenstions http://java.about.com/od/javasyntax/a/nameconventions.htm

1

至于其他的答案指出,如果编程语言允许在标识符空间,它引入了严重的不确定性问题。

  • 语法允许两个连续的<identifier>符号的任何地方都是不明确的。

  • 语法允许在<identifier>之前或之后的关键字的任何地方都是不明确的。

这将是可能的设计语法来摆脱这些歧义;例如

  • 标识符必须以$开始,或者必须用引号引起来,和/或
  • 关键字必须全部大写和全部大写的“词”中的标识符被禁止。

但是,当你解决这些规则的所有后果时,最终你会得到一种大多数程序员都恨的语言。


是什么空间,在Java中是什么意思?

要特别回答 - 空格分隔标识符和关键字。在一个文字字符或字符串中,它代表Unicode SP码点。

为什么程序员不能在空间中使用空格而不是写名字/标识符?

因为这是指定Java语言的方式!要了解他们为什么如此指定Java,请参阅上文。