问题标签 [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 投票
1 回答
132 浏览

crystal-lang - 检查迭代器是否完整的正确方法是什么?

正如标题所述,我想知道检查迭代器是否完整的正确方法。

我在文档中找不到任何内容,但我在源代码中找到了类似的内容:

玩具示例:

这是正确和适当的还是我应该使用不同的方式。

0 投票
1 回答
1906 浏览

crystal-lang - Crystal 库可以从 C 静态链接到吗?

我已通读本教程中的“C 绑定”,但我是 C 方面的新手。

有人可以让我知道是否可以将 Crystal 程序构建为要链接的静态库,如果可以,请提供一个简单的示例?

0 投票
1 回答
520 浏览

crystal-lang - (元组数组)的哈希导致编译/运行时错误“元组 {(String, String -> Void)} 的索引超出范围”

我正在尝试制作一个包含元组的数组哈希。这导致了一个奇怪的问题,我怀疑这是一个编译器错误,但我不是 100% 确定。

我正在使用的语法:

看起来这已经成为一个(String, String -> void)对象的元组,而不是String, String -> void. 运行时会出现此错误, crystal spec但运行时不会出现此错误crystal build ./src/main.cr

这是编译器/运行时错误,还是我弄乱了语法?


Crystal 0.8.0 [e363b63](2015 年 9 月 19 日星期六 12:00:17 UTC)

0 投票
1 回答
150 浏览

crystal-lang - 是否可以手动获取 `yield` 值而不是循环?

以文档中的这个例子为例,我们可以发送一个yield从函数接收值的块。

我想知道的是我们是否可以手动调用该函数,以便第一次调用给出1然后我们做其他事情,然后下一个调用给出2.

我尝试(只是猜测)各种事情,puts twice()但无济于事。有什么办法可以做到这一点?

0 投票
1 回答
135 浏览

crystal-lang - 为什么 Object 不能是 Proc 对象的参数类型

我有这样的代码:

当我编译它时,我收到这样的异常:

还不能用作 Proc 参数类型,请使用更具体的类型

有人可以解释一下为什么会这样,为什么 Proc 不能被 Object 参数化?

0 投票
1 回答
131 浏览

linux - Linux 上缺少标准库?

我一直在 OS X 中使用 Crystal,随 Homebrew 一起安装。现在我在 Linux 上尝试一下,但是当我编译一个包含URI标准库的项目时,我得到:

虽然需要“URI”:找不到相对于“/home/...”的文件“URI”

我根据文档使用apt-get. (如果这很重要,我实际上正在使用 LinuxMint。)我还需要下载 git repo 吗?如果是这样,Crystal 期望它在哪里?


我下载了一个预编译的二进制文件。我看到它包括标准库。有水晶寻找的路径吗?

0 投票
1 回答
651 浏览

ruby - 是否可以为 Ruby 创建 Crystal 绑定?

我正在为水晶创建一个m3u8生成器/解析器,但我想稍后将它与 ruby​​ 一起使用。这可能/容易做到吗?  

0 投票
2 回答
2428 浏览

dependencies - 如何生成没有依赖关系的 Crystal 可执行文件?

我正在用Crystal编写一个程序,我打算编译并移动到其他系统执行。理想情况下,它应该没有依赖关系,因为目标系统将是 linux 的全新安装。

可悲的是,我无法绕过 libc 依赖项,因此我可能不得不在拥有我希望定位的最低版本 libc 的系统上编译可执行文件。我认为它应该是向前兼容的。

但是,我在使用 libssl 时遇到了困难。Debian Wheezy 的默认安装似乎没有附带 libssl,因此在运行可执行文件时出现此错误:

我假设存在这种依赖关系,因为我require "http/client"在我的源代码中。但是,我没有进行与 ssl 相关的调用,因为我只使用它来连接到不安全的网站。

我显然也依赖于libevent-2.0.so.5. 大概所有 Crystal 程序都可以。谁知道 Crystal 还有多少其他依赖项?

我的可执行文件必须在新安装的 linux 系统上运行。那么,如何生成没有依赖关系的 Crystal 可执行文件?除了libc,我想。

0 投票
1 回答
953 浏览

file - 如何在Crystal中将二进制写入文件

我有一个 UInt32 数组,将它写入 Crystal lang 中的二进制文件的最有效方法是什么?

到目前为止,我正在使用IO#write_byte(byte : UInt8)方法,但我相信应该有一种方法可以编写比每 1 个字节更大的块。

0 投票
1 回答
95 浏览

crystal-lang - Crystal lang中的变量类型可以限制为从一个类继承的类吗

我是说:

是否可以将变量的类型限制为从Foo没有联合的类继承,例如x : Foo+