问题标签 [crystal-lang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
121 浏览

crystal-lang - 用 UInt8 变量定义方法

我有UInt8变量的方法:

这样我得到错误:

我知道我可以用初始化 Object_u8

但是有没有办法自动做到这一点_u8

附言

问题不仅与UInt8,而且与所有Ints 类型有关

0 投票
1 回答
402 浏览

ruby-on-rails - 如何重用 HTTP 连接并在 Sidekiq 后台作业之间共享?

我的应用程序向第三方服务器发送多个 API 请求并在后台作业中获取响应。现在每个作业都会打开新的 Http 连接并在收到响应后关闭它。如果可以在我的所有应用程序的工作之间共享这种联系?如何在工作池正在进行时保持它的活力?最后怎么关闭?谢谢。

0 投票
1 回答
1045 浏览

crystal-lang - 如何从 POST 请求中解析数据

我有一个 getter 上下文:HTTP::Server::Context 和一个登录表单。
现在我想从 context.request.body 解析数据以获取用户输入的用户名和密码。

响应的内容类型:application/x-www-form-urlencoded

0 投票
2 回答
429 浏览

crystal-lang - 如何测试私有方法?

有没有使用 Crystal 的内置spec库对私有方法进行单元测试的方法?

我来自 PHP 背景,可以使用它ReflectionMethod::setAccessibility来更改方法对公共的可访问性以允许对其进行测试。我在 Crystal API 文档中找不到任何类似的东西,所以只是想知道这样的东西是否存在。

0 投票
1 回答
178 浏览

crystal-lang - Crystal C 绑定:参数 const unsigned char **

这是我正在尝试使用的 C 函数的签名(它生成二进制数据数组):

我将其映射为:

在 C 中使用它的工作示例:

但在水晶中:

0 投票
2 回答
179 浏览

crystal-lang - Crystal C 绑定:使用 fopen

我需要将 fopen 用于库。这是正确的方法吗?fopen 是否已经在某处定义?(这在 LibC IMO 中会很有用)

它工作正常,我想知道定义它的最佳方法。

0 投票
1 回答
306 浏览

crystal-lang - 在 Crystal 中将二进制数据写入标准输出

我正在尝试将二进制数据输出到标准输出(使用 Kemal 提供一些动态二进制数据)。

这是一个测试:

我试过没有成功:

0 投票
1 回答
400 浏览

crystal-lang - Crystal web app / Kemal的应用服务器

作为 Rails 开发人员,我习惯于在我们的服务器中使用 Nginx + Unicorn。

Crystal web apps / Kemal 是否有类似的解决方案?

我不是 Nginx 专家,但我想我可以直接使用 proxy_pass 到 Crystal HTTP 服务器或 Kemal 或 fast-http-server ......我想念的是进程管理、GC 选项、重新生成等。

0 投票
2 回答
809 浏览

linux - 将最大虚拟内存大小增加到 256gb 以上

我正在运行一个使用 mmap 分配 8mb 堆栈的程序。在测试我可以分配多少堆栈(目标为 100,000)时,我看到虚拟内存大小按预期迅速增加,并且保留大小保持较小(小于 1gb)。然后程序会出现Cannot allocate new fiber stack: Cannot allocate memory (Errno). gdb用于挽救段错误然后查看 htop,我发现这发生在大约 256GB 的虚拟内存处。

prlimit --as=unlimited --rss=unlimited --memlock=unlimited --data=unlimited在运行程序时尝试过使用,但似乎没有什么不同。

有没有办法增加这个限制?是否建议增加此限制?水晶分配堆栈有更好的方法吗?

0 投票
2 回答
485 浏览

ruby - 返回可选值的惯用方式是什么?

我只是有点撞墙在这里。假设我的代码如下所示:

这里的返回值是 Int 或 Nil。我已经习惯了可选项的概念(在 Rust、F#、Haskell 等语言中),这真的让我很困惑。

我意识到我可以毫无问题地返回任何类型的值,但是从更实用的背景来看,它只是感觉不对。

在 Rust 中,我会返回一个Option<T>. 这样我就可以很容易地测试是否Some返回了值,或者没有值(None)。不过,在 Ruby/Crystal 中,这似乎是一件愚蠢的事情。

所以,问题来了:
如果nil没有有用的价值来返回和测试,我是否应该返回,这是处理此类情况的惯用方式吗?如果没有,我应该如何以惯用的方式做到这一点?