問題タブ [rust]

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 に答える
2797 参照

rust - 所有ポインタを移動する方法

参考までに、Rust 0.7 を使用しています。

所有リンク リストを使用してスタック実装を作成しようとしていますが、問題が発生しています。

しようとするrustc stack.rsと、次のエラーが表示されます。

これをどのように克服できるか、またはこれを可能にするために別の方法で何ができるかわかりません。マネージ ポインターを使用せずにこのデータ構造を作成できるはずですが、この種のドキュメントはあまり見たことがありません。

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

rust - 所有されたポインターの移動のセマンティクス

この記事は、Rust ドキュメントでの「移動」という用語の使用が、コピーを意味するのではなく、コンパイル時の所有権の譲渡を意味する可能性を暗示しているようです。具体的には、この引用を参照してください。

コンパイラは、所有者が 1 人だけであることを強制します。ポインターを新しい場所に割り当てると、所有権が譲渡されます (略して移動と呼ばれます)。このプログラムを考えてみましょう:

これは正しいです?所有権の譲渡/移動は実行時に実際にコピーするのではなく、コンパイル時の抽象化にすぎません。

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

rust - Rustでオプションの所有ポインタを管理するにはどうすればよいですか?

私は自分の C++ プロジェクトの 1 つである単純な DSL を、錆を学習する演習として錆に変換していますが、ネストされた構造と所有権に問題があります。次のようなものを変換するのに苦労しています:

このために私が書くさびは次のとおりです。

この種のコードの偶像的なさびた方法は何ですか?

0 投票する
3 に答える
1702 参照

json - 逆参照から移動できません

私は Rust と extra::json モジュールを学んでいます。これが私の例です(余分な不要な型注釈があります):

コンパイルすると、次のようになります。

このエラーにヒットしない match の使用が他にもあります。

ご協力いただきありがとうございます!

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

rust - タスクとクロージャー全体の DuplexStream

ライフと借りたポイントで困っています。マニュアルを読み、ポインターのチュートリアルを借りましたが、まだ行き詰まっています。

のスケッチmain.rs

のスケッチrepos.rs

これらのモジュールをコンパイルすると、main.rs に次のエラーが表示されます。

DuplexStreams の有効期間を静的に宣言する方法がよくわかりません。あるいは、これは slurp_repos の関数型での間違った方法だったのかもしれません。

完全なコンテキストを表示する場合:

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

hashmap - さびの文字列キーのHashMap?

タイプのキーを持つ HashMap を~str慣用的に使用する方法を理解するのに苦労しています。例えば、

このバグレポートに基づいて、試しました

しかし得た

この最後のメッセージはよくわかりません。誰か提案がありますか?

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

rust - 未解決のインポート: `std::num` に `atan` がありません

Rust チュートリアルから例を作成しています。この例をコンパイルしようとすると:

タイトルエラーが発生します。でコンパイルしていrust build Test.rsます。コンパイラが を見つけられないのはなぜstd::num::atanですか?

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

rust - 不変フィールドと有効期間の不一致

このコードを考えると(ここでも):

15 ~ 17 行目に問題があります。

15 行目と 16 行目で、これら 2 つの変数を変更する最善の方法を誰か説明できますか? 正しく使用していないか、どこか selfが欠けているようです。mut

17行目では、次のようlifetime mismatchにも言っています。

タイプの不一致: '&Vector2' が予期されていましたが、'&Vector2' が見つかりました... 14:41 にブロックで定義された匿名の有効期間 #1 は、14:41 でブロックに定義された匿名の有効期間 #2 よりも長生きするとは限りません。

これら2つの問題を解決する方法を知っている人はいますか?

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

testing - クレート内のモジュールのテストの実行

複数のファイルにまたがる複数のモジュールで構成されるクレートを作成しています。これらのモジュールは相互に依存しています。つまり、一部のモジュールはこのクレート内の他のモジュールを使用しています。

クレート内の他のモジュールとは別に、そのようなモジュールでテストを実行することは可能ですか? このクレートに他のモジュールへの参照が含まれている場合、実行rust test some_module.rsは機能しません。some_module.rs実行rust test my_crate.rcは機能しますが、すべてのクレート モジュールからテストを実行します。これは私が望んでいるものではありません。

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

pointers - 奇妙な借用チェックの失敗

私はおおよそ次のコードを持っています:

次のメッセージで失敗します。

次のコードでこれを修正できます。

しかし、なぜ失敗するのでしょうか。可変ポインターと不変ポインターが取得されるスコープは異なり、それらは異なる式です。私には一種のバグのように見えますが、ここで何かが欠けていないことを確認したいだけです。