問題タブ [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.
rust - Rustコンパイラにstdからのインポートを解決させる方法は?
mingw32 には Rust 0.6 コンパイラを使用しています。「コア」からインポートする小さなプログラムをコンパイルできますが、「std」からはインポートできません。これは、些細な例と、それをコンパイルする方法を示すトランスクリプトです。
インポートを解決するためにrustc.exeを取得するにはどうすればよいですか?
string - 文字列リテラルを別の文字列と連結する
文字列リテラルと文字列変数を連結できない理由はありますか? 次のコード:
このエラーが発生します:
これはかなり基本的で非常に一般的なパターンだと思いますfmt!
。そのような場合に を使用すると、不要な混乱が生じるだけです。
haxe - ヒョウの錆
さびのためにmacportを試しましたが、失敗しました。ヒョウで錆をコンパイルするにはどうすればよいですか。モノを実行し(モノを開発し)、ヒョウでhaxeを作成できる場合、錆を使用できるはずです。私はgcc 4.6を持っているので、かなり最近のコンパイラ設定です。
私はさびを試してみたいと思っていますが、初期の haxe-rust への移植がさらに興味をそそられています。私は自分の PC を開くことができますが、正直なところ、私はいつも自分の Mac で実験することになるので、このヒョウ システムにインストールできない限り、適切に探索できるとは思えません。さびを作るためのヒントをいただければ幸いです。
また、メーリング リストを見ると、アップグレードしたとしても、現在 Mac で錆を実行すると問題が発生することが示唆されています。
rust - コードに libsyntax をインポートできますか?
Rust lexer をコードにインポートしたい
しかし、上記のコードはコンパイルに失敗します
ユーザー コードから libsyntax を使用できますか? インポートできる場合、どうすればインポートできますか?
rust - Rust で 0 から 99 までの数字を出力するループを作成するにはどうすればよいですか?
この質問はRust 1.0より前の構文を使用していますが、概念は普遍的であり、安定したRust 1.0を反映するために多くの回答が更新されています.
この質問は、プログラマーが Rust を学習する際に試みる可能性のある非常に基本的なことに関するものです。
Rust 言語についてもっと簡単な質問をすることはできないと思いますが、私は 30 年の経験を持つプログラマーなので、理解できません。
int::range
私はそれが閉鎖と関係があると思います。
これは私が Rust の非常に初期のバージョン (1.0 より前) で書いたものです。
これにより、修正方法がわからない素敵なエラーメッセージが作成されます。
関数本体全体が出力されたのはおかしいですが、それでもそれが何を&fn(int) ->b ool
意味するのかわかりません。Rust では、イテレータのクロージャの本体で戻り値の型を宣言しないことは明示的に許可されていないのではないかと漠然と考えており、混乱しています。
rust - Rustの「array.each」パラメータで使用されるポインタの型は?
この Rust の例を考えると (ここにあります):
dog
のパラメータはどの型のポインタ.each
ですか?
変数の宣言は、一意に所有されたポインター ( ) が一度に 1 つの名前しか持てないdog
という規則に違反しているようです。~
一意に所有される ( ) ポインターの規則を破ることなく、ループを介してdogs
各犬を変数名に割り当てるにはどうすればよいでしょうか?dog
~
dog
この場合、Rust参照ですか(したがって、別の名前で借用ポインタを表すことができます)? もしそうなら、どうすればわかりますか?Rust 参照は&
構文を使用する必要がありますよね?
pointers - パターンマッチング中にフィールドを変更する
私は今日初めて Rust を試しました (XML トークナイザーを作成しました) が、もちろんすべてを理解しているわけではありません。
列挙値を取ることができるフィールドを持つ構造体があります:
ではimpl Tokenizer
、現在の状態で一致させ、場合によっては変更したいのですが、これは常にuse of moved value
エラーになります。
H は状態フィールドにアクセスおよび/または宣言して、それに基づいて一致させ、一致ブランチ内でその値を変更できるようにしますか?
混乱させて申し訳ありません。状態の文字列フィールドではなく、トークナイザーの状態フィールドを変更するつもりでした!
rust - Rust の共有トレイトへのポインタを借りることはできますか?
借用ポインター (壊れた) に関するチュートリアルから、少し変更しました。
共有ボックスは機能のために自動的に借りられるため、すべて問題ありません。
しかし、トレイトで同じことを行います:
そして、失敗します(コンパイラバージョン0.6):
エラー: 型の不一致: 予期され
&TPoint
たが見つかりました@TPoint
(特性ストレージが異なります: 予期された & が見つかりました @)
これはコンパイラのバグですか? または、借用したポインターは特性に許可されていませんか?
答えが後者なら、それはなぜですか?
rust - Rust での遅延シーケンス生成
他の言語が遅延シーケンスまたは「ジェネレーター」関数と呼ぶものを作成するにはどうすればよいですか?
Python ではyield
、次の例 (Python のドキュメントから) のように使用して、中間リストのメモリを使用しない方法で反復可能なシーケンスを遅延生成できます。
Rustで同様のことを行うにはどうすればよいですか?
types - Rustで所有ベクターの内容を静的ベクターと比較する方法は?
テストの一環として、関数が適切な内容のベクトルを返すことをアサートしたいと思います。したがって、期待されるデータを静的変数として使用できるようにしました。ただし、マネージド ベクターの内容を静的ベクター変数と比較する適切な方法が見つかりません。
更新:比較する前に静的ベクターへの参照を割り当てると問題が回避されるため、最終的にはベクターが等しいことをアサートするための小さなマクロが作成されました。
使用法:assert_typed_eq([u8], my_data, expected_data);