小编dgo*_*o.a的帖子

为什么Lua中的大队列使用w/table remove/insert效率低下?

来自PiL(第1版和第2版):

虽然我们可以使用insert和remove(从表库中)轻松实现队列,但对于大型结构,此实现可能太慢.更有效的实现使用两个索引,一个用于第一个,另一个用于最后一个元素......

这是因为重新编制索引吗?或者还有另一个原因导致大型结构的效率低下?

queue lua lua-table

3
推荐指数
1
解决办法
508
查看次数

luarocks管理是否有"./node_modules"等同于项目?

在NodeJS/NPM中,您可以创建package.json并运行npm install以在项目的文件夹中安装所有依赖项:./node_modules.(项目可以是应用程序或其他模块/包.)

Ruby还有一个"捆绑"系统(使用.bundle文件),可以跟踪特定于目录(即项目)的宝石.

LuaRocks有类似的惯例吗?或者是否建议将所有东西安装到/usr$HOME

到目前为止,我已经能够获得类似的功能,但我必须创建一个自定义的LuaRocks配置文件,并指定--tree=my_local_lua_rocks_dir每次我想安装一个摇滚.当然,我总是可以创建一个bash脚本.关键是我似乎违背了一项惯例.

lua luarocks

3
推荐指数
1
解决办法
753
查看次数

有没有记载`require`在全球环境中运行块?

编写模块时,文件在全局环境中运行,而不是在调用环境中运行:

-- other_file.lua
require('my_file')

-- my_file.lua
getfenv(2) == getfenv(0)   -- true
setfenv(1, {})             -- or module(...)
getfenv(2) == getfenv(0)   -- true
Run Code Online (Sandbox Code Playgroud)

我永远不记得读到这个.是在任何地方提到/记录的吗?

(这个问题更多的是关于require而不是getfenv.我知道它已经在5.2中删除了.)

lua

3
推荐指数
1
解决办法
87
查看次数

Purescript中新类型的约束是否可行?

是否可以在Purescript中对类型构造函数设置某些约束?例如:

newtype Name = Name String
   -- where length of String is > 5
Run Code Online (Sandbox Code Playgroud)

purescript

3
推荐指数
1
解决办法
504
查看次数

是否可以美化 :to_json 的输出(在 Crystal 的标准库中)?

我正在使用 Crystal 的 JSON 模块来更新package.json文件,所有输出都在一行上。是否可以控制 :to_json 的输出?

require "JSON"
data = File.read("package.json")
data.as_h["version"] = "X.X.X"
puts data.to_json
Run Code Online (Sandbox Code Playgroud)

json crystal-lang

3
推荐指数
1
解决办法
381
查看次数

NGINX将哪个前缀用于“包含”?

在编译NGINX时,出现以下消息:

nginx path prefix:          "/tmp/app"
nginx binary file:          "/tmp/app/progs/nginx/sbin/nginx"
nginx configuration prefix: "/tmp/app/progs"
nginx configuration file:   "/tmp/app/progs/nginx.conf"
Run Code Online (Sandbox Code Playgroud)

NGINX是否在中使用for path prefixconfiguration prefixfor include指令nginx.conf

nginx

2
推荐指数
1
解决办法
1858
查看次数

如何查看在编译时宏中是否定义了常量/ TypeNode?

是否可以通过使用宏来检查是否已定义全局常量(例如,类,结构,模块的TypeNode)?

{% if defined?(::My_Class) %}
  puts "My_Class has been defined."
{% end %}
Run Code Online (Sandbox Code Playgroud)

我知道可以使用TypeNode#has_constant?,但问题是必须在全局命名空间中定义一个常量.

(我问的原因是因为在开发和重构期间,我发现在一些情况下这将是一个方便的占位符,直到我可以重新编写其余的代码库.)

crystal-lang

2
推荐指数
1
解决办法
63
查看次数

是否可以通过将$ @存储到另一个变量中来保留引用?

如果我在命令行上有这个:

bin/my_file --name "this name with whitespace" dir/some_file
Run Code Online (Sandbox Code Playgroud)

然后在我的脚本中:

full_cmd="$@"
# later...
"$full_cmd"
Run Code Online (Sandbox Code Playgroud)

引号不会保留.这是我最接近的:

 app=$1
 shift
 $app "$@"
Run Code Online (Sandbox Code Playgroud)

但是,如果可以将"$ @"保存到变量中以便以后重新使用会很方便,如下所示:

 my_func () {
    $app "$args"
 }
Run Code Online (Sandbox Code Playgroud)

除了凌乱之外,我还没能完成任何工作for loops.我是bash的新手.我已经搜索了所有其他可能的解决方案,但无法弄清楚为什么这么难.我错过了一些明显的东西吗

bash quotation-marks

1
推荐指数
1
解决办法
48
查看次数

在Crystal,哈希或查找的案例表达式中哪个会更快?

在针对已知组,Hash(String => Bool)或case?的情况下查找字符串会更快.

input = %w(a b c x y z)
valid = { "a" => true, "z" => true }
input.find { |x|

  !valid.has_key?(x)

  # or

  case x
  when "a", "z"
    false
  else
    true
  end
}
Run Code Online (Sandbox Code Playgroud)

crystal-lang

1
推荐指数
2
解决办法
108
查看次数

有没有办法在 Crystal 中重定向 STDERR?

在测试期间重定向会很方便STDERR。这在水晶中可能吗?

crystal-lang

1
推荐指数
1
解决办法
433
查看次数

在Crystal中,如何判断文件是文本文件还是二进制文件?

如果您有2个文件,一个是文本,另一个是二进制文件,是否可以使用Crystal确定哪个文件是文本文件,哪个文件是二进制文件?

crystal-lang

1
推荐指数
1
解决办法
84
查看次数

HTTP :: Server :: Response#headers的`[] =`和`add`有什么区别?

我查看了两者的源代码[]=以及添加/操作头文件.add时的源代码.我仍然对两种添加/设置标题的方法感到困惑.这两种方法有什么区别?

http-headers crystal-lang

1
推荐指数
1
解决办法
56
查看次数

Node.js 中的默认 SIGINT?

我尝试搜索 Node.js 源代码,但找不到它。默认情况下,在以下示例中,我在哪里可以找到默认处理 SIGINT ( Ctrl+ )的 Node.js 代码:C

var http = require('http');

var server = http.createServer(function(req, res) {
  res.writeHead(200);
  res.end('Hello Http');
});


server.listen(5001);
Run Code Online (Sandbox Code Playgroud)

sigint node.js

0
推荐指数
1
解决办法
1627
查看次数