在某些源代码中,我看到了“Underscore.lua”模块的用法。
"defaults": {
.....
"styleExt": "sass"
}
说明如下:
_ = require 'underscore'
是一个提供一组实用程序的Lua库 用于处理迭代器,数组,表和函数的函数。 这是api和文档受Underscore.lua
的启发。 在Lua中使用下划线字符来丢弃变量是惯用的,所以你可以简单地将它分配给另一个变量名...
文档中提供的示例对我来说有点混乱。例如,以下操作的目的是什么?
Underscore.js
很明显,这个模块为迭代器,数组等提供了一些函数。但是当你可以使用比下划线更明显的任何其他字符时,为什么要使用_ = require 'underscore'
_.each({1,2,3}, print)
1 1 {
1 : 1
2 : 2
3 : 3
}
2 2 {
1 : 1
2 : 2
3 : 3
}
3 3 {
1 : 1
2 : 2
3 : 3
}
?特别是当许多编辑不突出它时,阅读起来非常麻烦。我不太明白什么是大惊小怪。
答案 0 :(得分:4)
但是当你可以使用比下划线更明显的任何其他角色时,为什么要使用_?
*啊哈*:
深受Underscore.js的启发
因为那是Underscore.js使用的。
我宁愿怀疑下划线字符是精确地选择因为它不是非常明显。这些实用程序的重点在于您可以在任何地方使用它们,它们是您对数据结构进行基本操作所需的日常工作。
因此,它们应该是该语言中可用的标准函数,访问它们所需的语法最少。但是你不能只将它们转储到全局表/ namespace / etc;这可能与现有代码冲突。所以你给他们访问它们所需的绝对最小语法。
答案 1 :(得分:3)
如果您使用
your_favorite_variable = require 'underscore'
你可以使用
your_favorite_variable.each({1,2,3}, print)
但是下划线(除了它与库和引用的javascript库具有相同的名称)有几个优点:
这是很常见的方法。类似用于Javascript中的jQuery,它以同样的方式滥用$
。