問題タブ [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 に答える
341 参照

binding - Crystal-Lang C-Binding 構造体が null 値を渡していないようです

私は現在、libxml2での c-binding を使用して、crystal-lang の c14n サポートを追加しようとしています。xmlC14NDocSave を使用して、正規の xml をファイルに保存することに成功しました。私が抱えている問題は、xmlC14NDocSaveTo と xmlC14NExecute の両方の xmlOutputBufferPtr にあります。

私が受け取るエラーは(MacおよびLinux)です

xmlC14NExecute: 出力バッファ エンコーダー != NULL ですが、C14N には UTF8 出力が必要です

ドキュメントの状態

C14N は UTF-8 出力を必要とするため、このバッファはエンコーダ==NULL を持たなければなりません (MUST)。

私はsrc/C14N/lib_C14N.cr次のコードを持っています

src/C14N.cr

p ouput.encoder の結果はPointer(Void).null、値が null のようです。

関数は、c14n.cbuf->encoder 構造体で null をチェックしているだけです

コードは私のgithubアカウントにあります。クローンして実行crystal spec

0 投票する
2 に答える
212 参照

compile-time - "undefined method 'zero' for Nil:Class" when #sum the Array without Nils

The issue happens when the variable, that the array was built from, was a nil initially.

When v stops being nil on a condition, that is potentially computational and not solvable while compiling:

The array gets more complex type, that isn't compatible with current sum implementation, so p z.sum causes compile time error:

How am I supposed to fight this properly?
Or maybe it waits for some better implementation of stdlib sum method or anything else?

UPD: inject gives the same:

0 投票する
2 に答える
3020 参照

crystal-lang - JSON 解析のデータ型を指定する方法は?

ハッシュの配列である JSON 応答があります。

私のコードは次のようになります。

これにより配列が得られますが、要素を実際に使用するには要素を型キャストする必要があるようですundefined method '[]' for Nil (compile-time type is (Nil | String | Int64 | Float64 | Bool | Hash(String, JSON::Type) | Array(JSON::Type)))

私は試しas Array(Hash)ましたが、これは私に与えますcan't use Hash(K, V) as generic type argument yet, use a more specific type

タイプを指定するにはどうすればよいですか?

0 投票する
1 に答える
119 参照

crystal-lang - Crystal でインスタンス変数をローカル変数に割り当てる必要があるのはなぜですか?

Crystalコンパイラのソースコードで、そのようなコードを見たことがあります

では、インスタンス変数を直接使用する代わりに、インスタンス変数をローカル変数に割り当てる理由は何でしょうか?

0 投票する
2 に答える
374 参照

xml - Crystal を使用して XML::Nodeset の最初のノードから値を取得する

Crystal を使用しており、XML ドキュメント内のノードの ID を取得しようとしています。

次のコードを使用してIDにアクセスしています

ノードセットを調べると、期待どおりのコンテンツが得られます。

[#<XML::Attribute:0x1287690 name="ID" value="bar">]

そして、インスタンスメソッドを持つものをnodeset.class返します。だから私は値を得るためにこれを行うことができるはずだと信じています:XML::NodeSet[]

ただし、呼び出すnodeset[0]と、次のエラーが表示されます。

メソッドが[]nodeset を Float64 としてinspect認識している理由がわかりません。classXML::Nodeset

私は何が欠けていますか?

[]String にはメソッドがあり、Float64 にはメソッドがないのは偶然ですか?

0 投票する
1 に答える
981 参照

websocket - Crystal で WebSocket サーバーへの接続を開く方法 (Crystal をクライアントとして使用)

Crystal をクライアントとして使用して、websocket サーバー接続を使用したいと考えています。Crystal 標準ライブラリは WebSocket クライアント ライブラリを提供しますか?

0 投票する
1 に答える
277 参照

crystal-lang - Crystal build fails with linker error

I've just tried to run the simple HTTP server from the language documentation. The program fails with an error.

The program has been copy-pasted from the documentation.

I can confirm that the program did/does run on my guest machine, but not on my host. Both are Ubuntu 14.04.3 installs.

0 投票する
1 に答える
102 参照

crystal-lang - Crystal で arr の内容をバイナリ シーケンスにパックする

Array#packメソッドを使用して Ruby と同じ結果を達成する標準的な方法はありますか。