为什么人们在Lua中使用无空格的“函数名称”字符串”样式?

在Lua中,如果一个函数接受一个字符串字面量作为单个参数,我们可以省略括号。

我感到好奇的是为什么许多我认为在Lua中非常熟练的人没有在它们之间打空格。例如,他们这样做:

local re = require're'
s = f:read'*a'

而不是:

local re = require 're'
s = f:read '*a'

为什么会这样?

点赞
用户2679394
用户2679394

Lua是完全由用户控制的,你可以输入任意多的空格,或使用“string”代替'string'。每个人都能够自定义他们的Lua编码,不像C/C++那样强制要求使用单一样式输入参数。你可以使用自定义的方式,喜爱的方式。Lua不要求你只使用一个空格或者根本不使用空格。Lua通过搜索你的参数来读取代码,不管你输入了多少个空格,它只是搜索你的关键词。这使得在编写完python或C++后,编写lua变得容易,所以你不必改变编程的方式来使用lua。以下几种方式几乎可以用于你的代码:

local re = require're'
s = f:read'*a'

local re = require('re')
s = f:read('*a')

local re = require('re');
s = f:read('*a');

local re = require 're'
s = f:read '*a'

local re = require"re"
s = f:read "*a"

local re = require("re")
s = f:read("*a")

local re = require("re");
s = f:read("*a");

local re = require    ("re");
s = f:read     ('*a");

这基本上意味着添加空格,删除括号或添加分号不会影响代码。 此外,Lua字符串是'。换行符也不会影响代码,以下是一个示例:

print"aaa"print"aac"print"aab"

但最好让您的代码具有可读性,这使得您更容易修复错误和缺陷。不添加换行符使得无法调试错误,它只返回位于第一行的错误,即整个代码。

2013-12-18 14:39:35
用户107090
用户107090

自从 Lua 2.1(1995 年)以来,可以写成 f{} 而不是 f({}),以便处理数据文件,例如 BibTeX。

自从 Lua 3.1(1998 年)以来,可以写成 f"hello" 而不是 f("hello"),以便处理特定领域语言和更自然的配置文件,例如 host "myhost"。它还适用于表达式,例如 require"re",感觉就像 require 是一个关键字,而不是一个函数。

这两种形式可以组合使用,以获得更自然的表达式,例如 host "myhost" { ip="0.0.0.0" }

因此,为了回答您的问题,这些形式的动机是为了提高清晰度和表现力,尽管它也迎合了懒惰。

2013-12-19 11:15:55
用户1847592
用户1847592

使用等宽字体 require're' 容易阅读且外观美观。

在语法高亮环境中,require're' 将具有不同的颜色。

因此,绝对不需要额外的空间。

2014-01-02 10:38:16