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

generics - ジェネリックを使用したニム2キーテーブル

値がユーザー指定の型である Nim で 2 つのキー辞書を作成しようとしています。

次のエラーが発生しました:

私もこれに問題があります。

同じエラーが発生します。

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

macros - nnkUInt16Lit NimNode の作成方法

nnkUInt16Lit列挙バリアントとこの AST 表現を説明することを除いて、これに関するドキュメントはありません42'i16 - nnkInt16Lit(intVal = 42)

通常のように使用するnnkIntLitと失敗します。

これによりエラーが発生します。

フィールドintValが見つかりません

(これは私の実際の使用法ではありません。問題を示すための単なるデモです。)

でさまざまなバリエーションを試しましintValたが、エラーは常に になりundeclared identifierます。を使用しますparseExpr()が、 の$procintはコンパイル時に機能しないようです。

NimNode型定義のソース コードを探して調べてみましたが、今のところ見つかりません。

uint16では、マクロで NimNodeを作成するにはどうすればよいでしょうか?

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

generics - 「ジェネリックパラメータは許可されていません」を解決する方法

TL;DR: 同様の問題がある場合は、 a:と a を混同するなど、完全にばかげたことをしていないことを最初に確認してください=。私はエラーメッセージに非常に困惑していたので、愚かな間違いをさらに別の愚かな間違いで再現することができたので、大笑いしてください:

エラーに苦しんでいたところに問題が発生しましたno generic parameters allowed。この問題はおそらく次のように簡略化して説明するのが最も適切です: 最初の要素だけでタプルを比較する問題。次の例を検討してください。

この例では が生成されError: no generic parameters allowed for sortます。ネストされたコンパレータ プロシージャも定義して、あらゆる種類の構文のバリエーションを試しました。私が理解していないこと: コンパレーターがまだ一般的であると見なされているのはなぜですか? sortByFirstTupleElement私は、型内でKVが呼び出しコンテキストからインスタンス化された型、つまりintandであることを期待していましたNotComparable。したがって、私cmpByKey[K,V]は具体的であることを期待していましたcmpByKey[int,NotComparable]。コンパレータを具体的にするための構文上のトリックはありますか?

これが不可能な場合、ここで可能な回避策は何ですか? この例だけでなく、一般的には?この問題は、ジェネリック proc がジェネリック型を含む別の proc を渡す必要があるたびに発生すると思いますか?

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

arrays - Nim で配列への参照を作成する

Nim では、値渡しの代わりに参照を配列に渡すにはどうすればよいですか? 私がこれまでに持っているものについては、上記のコードを参照してください。

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

generics - ジェネリック関数型を定義する

次のスニペットがあるとします。

次のように、ベースおよびベース コンシューマからいくつかのタイプを定義したいと思います。

今、私が新しいものを作成するときConsumeOne

次のコンパイラ エラーが発生します。Error: type mismatch: got (proc (b: BaseOne): bool{.gcsafe, locks: 0.}) but expected 'ConsumeOne'

私は何を間違っていますか?

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

sdl - RectでのNimとSDL2の問題

次のNim +公式libsdl2ラッパーコードがあります

そして、コンパイル中にエラーがあります:

20行目も同様:

copy()とコメントqueryTexture()でposnilに置き換えれば、すべて問題ありません。この問題を解決するのを手伝ってください。

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

nim-lang - モジュールのインポートに使用できる「デフォルト」のファイル名はありますか?

つまり、ローカルNim モジュールのプライマリ ファイルに使用できる標準的な名前があれば、パスでインポートするときにディレクトリを簡単に参照できるということですか?

たとえば、ローカル モジュールのディレクトリとファイル名の両方を次のように指定する必要があるようです。

予想されるファイル名が見つかった場合、単にディレクトリを参照できることを望んでいましたが、

Nimble を使用するか、ファイル--path内のすべてのモジュールに個別のフラグを作成する以外に、これを可能にするものはありますか?nim.cfg

また、一般的に、モジュールのメイン ファイルに使用する従来の名前はありますか?


このような単純なアプリがある場合:

サブモジュールをロードするためにmyapp.nim使用する必要があります。import sub.subimport sub、私は得るError: cannot open sub

同様に、アプリの外部にモジュールがあり--path、それらのモジュールの親に を設定する場合は、 を使用する必要がありますimport my_module.my_module

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

nim-lang - テンプレート内の 2 つの typedesc を比較して等しいかどうかを確認する方法

テンプレート内の 2 つの typedesc を比較して、それらが同じ型を参照しているかどうか (または少なくとも同じ型名を持っているか) を確認できるようにしたいのですが、方法がわかりません。オペレーターはこれ==を許可しません。

それは私にこれを与えます:

これはどのように行うことができますか?