問題タブ [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.
import - FFI およびヘッダー ファイル
これは私のディレクトリ構造です:
util nim は次のように lodepng.h から ac 関数をインポートしています:
ただし、ヘッダーは nimcache にコピーされず、コードのコンパイル時にも見つかりません。nimコンパイラがそれを使用していることを確認するにはどうすればよいですか?
syntax - Nim: 文字列定数の前の感嘆符の意味
マクロのドキュメント ( http://nim-lang.org/docs/macros.html ) を読んで、次のコードを見つけました。
感嘆符の意味を調べようとしましたが、Nim のドキュメントには何も見つかりませんでした。
では、 Nimの"string"
との違いは何ですか?!"string"
tuples - Working with distinct tuples
With a type defined as type BroTuple = distinct tuple[a, b, c: int]
, how can i:
Create a new instance (
Brotuple()
is telling meError: object constructor needs an object type
)Access to its fields (
proc example(br: BroTuple) = echo br.a
says:Error: undeclared field: 'a'
)
seq - Nim でシーケンスをクリアする
List.Clear
Java や C# などの言語におけるシーケンスの Nim の等価性は何ですか? システムに procsetLen
がリストされているのを見ますが、それが私が望むことをするかどうかはわかりません。説明から:
f the current length is greater than the new length, s will be truncated. s
seq len を 0 に設定するたびに、seq の新しいインスタンスが作成されるということですか?
channel - tryRecv を使用したコンパイラ エラー
次のNimプログラムがあります:
コンパイルしようとすると、次のエラー メッセージが表示されます。
エラーメッセージが何を伝えようとしているのか理解できません...
macros - Nim マクロ パラメータ
コンパイルしたいコードは次のとおりです。
それは完全に機能します。マクロ内に必要なものがすべて揃っているので、自分の方法でスタッフを操作できます。
しかし、それから、マジックナンバーをいくつかの const 設定から削除する方が良いと思います:
このコードは失敗します。文字どおりマジックナンバーMAGIC_AMOUNT
と違って整数値ではないからです。42
では、nimのマクロ内で変数値を取得するにはどうすればよいですか?
performance - Nim での整数オーバーフローの回避
私は昨日 Nim の学習を開始し、Rust とのパフォーマンス比較を行うために小さなテストをコーディングすることにしました。コードは非常に簡単に記述でき、最大 10^9 の値に対して機能します。ただし、少なくとも 10^12 でテストする必要があります。これにより、uint を使用している場合でも、オーバーフローが原因で誤った値が返されます。
ほとんどの変数に対してさまざまな変換を試みてきましたが、オーバーフローを回避できないようです。もちろん、コードを読みやすくするための提案は大歓迎です!