Langs有不同的空格要求,例如,python非常严格地指定了所有内容的间距。如果您可以提供从手册或其他方面识别这些要求的一般程序,那将会有所帮助。一个具体的例子 - bash - 会非常有帮助。这是bash man的链接:https://www.gnu.org/software/bash/manual。你可以从那里引用回答,但也请说明你是如何查找信息的。这就是重点 - 找到一个有效的程序来了解lang的空白要求,而不事先了解它。
答案 0 :(得分:1)
我认为bash没有特殊的空间要求。然而,有空间有义务的地方 - 例如:
if [ "a$x" != "a" ]; then
...
fi
在'['不起作用之后写一个没有空格的[$ a $“,因为'['通常是指向 test 实用程序的链接,所以如果bash之后没有空格将搜索[要执行的$ x可执行文件。但这是特例。我不认为bash对空格有任何要求。
很少有编程/脚本语言使用空格/制表符作为语言的组成部分。 例如,makefile use tab用于规则命令:
target: prerequisite1 prerequisite2
command1 # the line starts with tab
command2 # the line starts with tab
另一种语言依赖于空格来理解代码,正如你所提到的那样是python。
其他语言没有指定任何空间要求,但为了便于阅读,您需要使用缩进。所有现代IDE支持都可以帮助您自动缩进代码。这组语言恕我直言 - C / C ++ / JAVA / bash /....
例如C代码:
int foo()
{
int i = 0; // compiler do not need the spaces (indentation) in the beginning of the line,
// It is required for programmer to easy understanding the code.
...
return i;
}
您将代码编写为:
int foo(){int i=0;return i;}
但是还有其他语言有不同的语法 - 例如html / sed / ...其中空格具有不同的含义,具体取决于它们使用的表达式的哪个部分。
答案 1 :(得分:1)
在大多数语言中,空格用作单词分隔符。所以在bash手册中,我首先会搜索“word”。第一次出现会引导我进入“单词分裂”部分,在那里我会遇到$IFS
,我会进一步深入了解这是什么。
Python示例并不是您可以选择的最佳示例,因为在Python中使用空格来定义代码块,因此除了作为单词分隔符之外,空格在语言语法中起着重要作用。
如果你想找到像这样的主题的根源(作为旁注,我真的不明白白色空间为什么比括号或任何其他符号更有趣),只需寻找语法定义您感兴趣的语言,看看您正在跟踪的符号实际上扮演的角色。
你很少会找到关于某种语言的明确的“空白要求”,但是你会发现很多语法要求(可能涉及很多空白约束 - 比如Python中 - 或许多括号约束 - 如在Lisp)。