تم تخطي هذا الصندوق بواسطة الشحن ، مما أضاف دعمًا لجميع الميزات التي كانت مفقودة عندما بدأنا العمل على ظهور البضائع. شكرا جميع على ملاحظاتك ودعمك.
لا يوجد سوى طريقتان للعيش في حياتك.
واحد كما لو كان لا شيء معجزة. والآخر كما لو أن كل شيء هو معجزة. - ألبرت أينشتاين
تحتاج إلى الصدأ ليلا و rustfmt للبدء.
يمكنك تثبيت هؤلاء عبر Rustup:
rustup install nightly
rustup component add rustfmt
كل مجموعة؟ دعونا نتشقق!
cargo install cargo-inspect
نسميها على أي ملف صدأ:
cargo inspect main.rs
إذا لم تحدد ملفًا ، فسيتم تحليل الصندوق الحالي بدلاً من ذلك.
cargo inspect
اعتمادًا على حجم الصندوق ، قد يستغرق هذا بعض الوقت.
يرجى التحلي بالصبر.
يمكن أيضًا مقارنة مخرجين للملف! جرب هذا:
cargo inspect --diff examples/range.rs,examples/range_inclusive.rs --plain
USAGE:
cargo inspect [FLAGS] [OPTIONS] [INPUT_FILE]
FLAGS:
-h, --help
Prints help information
--list-themes
Should we list all pretty printer themes?
--plain
Don't highlight output
-V, --version
Prints version information
-v, --verbose
Print the original code as a comment above the desugared code
OPTIONS:
--theme <THEME>
Specify a theme override for the pretty printer
--diff <files>
Diff input files
--format <format>
Override for the format that gets outputted when the `unpretty` mode is set to `flowgraph` [default: svg]
--unpretty <unpretty>
rustc "unpretty" parameters
*Note*: For `--unpretty=flowgraph=[symbol]` you need to have `dot` on your PATH. [default: hir]
ARGS:
<INPUT_FILE>
Input file
يسمح الصدأ بالكثير من السكر النحوي ، مما يجعل من دواعي سروري الكتابة. ومع ذلك ، يكون من الصعب في بعض الأحيان أن ننظر خلف الستار ومعرفة ما يفعله المترجم حقًا برمزنا.
على حد تعبير tsshepang ، "من الجيد معرفة ماهية هذه وسائل الراحة ، لتجنب التعرض للحيرة بما يجري تحت الغطاء ... كلما كان التفكير السحري لدينا في العالم ، كان ذلك أفضل."
كنت مهتمًا دائمًا بكيفية عمل لغات البرمجة في الخلفية ، وكيف تم إلغاء الرمز الخاص بي لجعل الواجهة الخلفية للمترجم أسهل في الحفاظ عليها.
الهدف هو جعل المترجم أكثر ودودة لمجرد البشر.
أُحجِيَّة! استكشاف! اكتشاف!
اقرأ المزيد عن خلفية cargo-inspect إلى مدونتي.
If-let التخلص من matchالنظر في مقتطف الرمز التالي:
fn main ( ) {
if let Some ( x ) = Some ( 1 ) {
// Do something with x
}
}عندما تقوم بتجميعها ، فإن أول شيء يفعله الصدأ هو desugar. لمعرفة شكل الرمز بعد هذه الخطوة ، قم بتشغيل
cargo inspect examples/if_let.rs
هذا ينتج الإخراج التالي:
يرجى العثور على المزيد من الأمثلة في مجلد examples . يمكنك أيضا المساهمة أكثر.
يتم تجميع أفضل الأشياء في العالم من لبنات البناء البسيطة. هذه الأداة تقف على أكتاف العمالقة. للعمل سحرها ، يدير الأوامر التالية:
rustc -Zinspect=hir ، لاسترداد Hir.rustfmt ، لتنسيق الإخراج.prettyprint ، من أجل ارتفاع الضوء على بناء الجملة ، وهو مجرد غلاف حول الصناديق الرائعة والصناديق الخفافيش. هذا مشروع شاب ، يحتوي على جوانب سلبية.
وبالتالي ، كن مساهمًا اليوم!
اعتبارا من الآن ، هذه أداة هشة للغاية. إذا فشل ، فهو قد سوف تنتج الناتج الرهيب. لقد تم تحذيرك. ومع ذلك ، لن يأكل الكود الخاص بك ، بالطبع. ؟
مرخصة تحت أي من
في خيارك.
مكبر الزجاج الذي صممه Rawpixel.com