3

是否有任何编程语言允许名称包含空格?(按名称,我指的是变量、方法、字段等)

4

11 回答 11

9

Scala 确实允许在标识符名称中使用空格字符(但要做到这一点,您需要用一对反引号将标识符括起来)。

示例(在 Scala REPL 执行):

Welcome to Scala version 2.8.0.final (Java HotSpot(TM) Client VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val `lol! this works! :-D` = 4
lol! this works! :-D: Int = 4

scala> val `omg!!!` = 4
omg!!!: Int = 4

scala> `omg!!!` + `lol! this works! :-D`
res0: Int = 8
于 2010-11-18T12:04:30.633 回答
5

在 SQL 中,您可以在字段名称等中包含空格和其他非标识符字符。你只需要引用他们喜欢[field name]"field name"

于 2010-11-16T15:43:51.000 回答
5

Common Lisp 可以用变量来做到这一点,如果你用管道 (|) 将变量名括起来:

CL-USER> (setf |hello world| 42)
42
CL-USER> |hello world|
42

值得注意的是,“管道”变量名也区分大小写(哪些变量名通常不在 CL 中)。

CL-USER> |Hello World|
The variable |Hello World| is unbound.
   [Condition of type UNBOUND-VARIABLE]
CL-USER> (setf hello-world 99)
99
CL-USER> hello-world
99
CL-USER> HeLlO-WoRlD
99
于 2010-11-18T12:28:02.923 回答
3

PHP 可以:http ://blog.riff.org/2008_05_11_spaces_php_variable_names

Perl 还:

${'一些变量'} = 42;
打印 ${'some var'}, "\n";

${'我的方法'} = sub {
  print "方法调用\n";
};

&${'我的方法'};
于 2010-11-16T15:41:56.063 回答
2

在 Ruby 中,您可以使用名为 as 的符号,:"this has a space"但它用双引号括起来,所以我不确定您是否计算在内。

如果其他语言允许空格作为符号名称中的有效字符,那么您将不得不使用其他字符来分隔它们。

于 2010-11-16T15:37:56.770 回答
2

JavaScript 的更新和实验性 Web 脚本(子)类型:https ://github.com/featurist/pogoscript/wiki

wind speed = 25
average temperature = 32

变成

windSpeed = 25
averageTemperature = 32

幕后。还有关于返回变量定位的灵活规则,因此您可以执行以下操作:

y = compute some value from (z) and return it
md5 hash (read all text from file "sample.txt")

变成:

var y;
y = computeSomeValueFromAndReturnIt(z);
md5Hash(readAllTextFromFile("sample.txt"));
于 2013-01-28T00:01:54.493 回答
1

变量名中的空格问题在于它需要解释,因为空格通常意味着“好的,当前标记的结尾,开始另一个标记”。此规则的例外情况必须有一些特殊指示符,例如字符串中的引号(“这是一个测试”)。

于 2010-11-16T15:41:21.933 回答
1

我们的PARLANSE并行编程语言就是这样一种。事实上,它允许标识符中的任何字符,尽管其中许多字符(包括空格)必须被转义(以 ~ 开头)才能包含在名称中。这是一个例子:

         ~'Buffer~ Marker~'

这用于让 PARLANSE 轻松引用来自其他语言的任意符号(特别是来自任意参考文档的 EBNF,我们无法控制使用的标点符号)。

我们不经常使用此功能,但是当需要它时,这意味着我们可以忠实于其他文档中的令牌。

于 2010-11-16T15:42:11.060 回答
0

您也许可以在此网站上找到不使用空格分隔表达式元素的深奥语言:http: //99-bottles-of-beer.net

例如...空格:D

于 2010-11-16T15:43:19.283 回答
0

某些 SQL 方言允许数据库、表和字段的名称中包含空格。

例如,在 SQL Server 中,您可以通过将表名放入[square brackets]或(取决于连接选项)放入"double quotes".

于 2010-11-16T15:43:24.980 回答
0

创建支持标识符中的空格的这种语言应该没有太多问题,只要有足够的分隔标记来说明标识符结束的解析器(例如运算符、大括号、逗号和臭名昭著的分号)。它只是不会大大提高源代码的可读性。

于 2011-08-10T14:06:31.790 回答