代码之家  ›  专栏  ›  技术社区  ›  Rabskatran

有没有任何语言可以让名字包含空格字符?

  •  2
  • Rabskatran  · 技术社区  · 14 年前

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

    11 回复  |  直到 14 年前
        1
  •  6
  •   missingfaktor Kevin Wright    14 年前

    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
    
        2
  •  4
  •   Gabe Timothy Khouri    14 年前

    在SQL中,字段名等中可以有空格和其他非标识符字符。你只需要像这样引用它们 [field name] "field name" .

        3
  •  4
  •   perp    14 年前

    如果用管道()将变量名括起来,那么公共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
    
        4
  •  2
  •   Kelvin    14 年前

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

    Perl还:

    ${'some var'} = 42;
    print ${'some var'}, "\n";
    
    ${'my method'} = sub {
      print "method called\n";
    };
    
    &${'my method'};
    
        5
  •  1
  •   FrustratedWithFormsDesigner    14 年前

    在Ruby中,可以将符号命名为 :"this has a space" 但它是用双引号括起来的,所以我不确定你是否算数。

    如果其他语言允许在符号名称中使用空格作为有效字符,则必须使用其他字符来分隔它们。

        6
  •  1
  •   Neil    14 年前

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

        7
  •  1
  •   Ira Baxter    14 年前

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

             ~'Buffer~ Marker~'
    

    这是用来让parlane容易地引用来自 其他 语言(特别是来自任意参考文档的ebnfs,在那里我们无法控制使用的标点符号)。

    我们不经常使用这个特性,但是当需要它时,它意味着我们可以忠实于来自其他文档的令牌。

        8
  •  1
  •   Rob Jens    12 年前

    最新的创新和实验性Web脚本(子)类型的javascript: http://pogoscript.org/

    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"));
    
        9
  •  0
  •   Klaim    14 年前

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

    例如。。。 whitespace D

        10
  •  0
  •   Joe White    14 年前

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

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

        11
  •  0
  •   MauganRa    14 年前

    创建这样的语言来支持标识符中的空格应该不会有太多问题,只要有足够多的分隔标记,比如标识符结束的解析器(如操作符、大括号、逗号和不知名的分号)。它并不能很好地提高源代码的可读性。

    推荐文章