Skip to content

Instantly share code, notes, and snippets.

@Zakarialabib
Last active June 24, 2023 11:37

Revisions

  1. Zakarialabib revised this gist Jun 23, 2023. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    PHP UK Conference 2023: Rust For PHP Developers Transcribition for reader in both arabic & english
  2. Zakarialabib created this gist Jun 23, 2023.
    2,988 changes: 2,988 additions & 0 deletions ar.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2988 @@
    حسنًا ، هل يمكن للجميع سماعي على ما أعتقد حتى في الخلفية ، وهو أمر رائع

    مرحبًا به لمطوري PHP لأولئك الذين لا يعرفونني ، اسمي Nuno مبتكر أدوات متعددة مفتوحة المصدر على نظام PHP الإيكولوجي مثل Pest Collision Larastan

    والمزيد من مشروعي الأساسي إلى جانب العمل من أجل Laravel
    PHP
    إذا كنت لا تعرف ما هو إلى حد

    كبير إطار اختبار PHP أنيق

    مع التركيز على البساطة لذلك إذا كنت

    مهتمًا بذلك ، فانتقل إلى passphp.com وأخبرني برأيك

    الآن ،

    آمل أن يكون الجميع متحمسًا لأنهم

    سيتحدثون عن الراحة من

    منظور مطور PHP وسنقوم في

    الواقع بالعيش الكامل جلسة

    الكود ولكن قبل أن ننتقل إلى ذلك ، دعني

    أقدم لك القليل من تاريخ

    الصدأ

    يعتقد معظم الناس أن الصدأ تم إنشاؤه

    بواسطة Modzilla ولكن في الواقع تم إنشاء روس

    بواسطة موظف Mozilla باسم

    Graden كمشروع موقع عادي و

    كان Graden يقوم بالكثير من C in C plus في

    ذلك الوقت ، وقال شيئًا كهذا

    عند إنشاء المشروع ،

    صفقاتي الرئيسية للحديد الصدأ

    محبطون من مطوري C plus plus الذين

    اختاروا C plus و Duo لأدائها

    لكنهم يحبون ذلك احصل على شيء أكثر أمانًا

    الآن إذا كنت تعمل مع لغات أنظمة

    مثل C أو C بالإضافة إلى أنك تواجه هذا

    النوع من الأشياء طوال الوقت ، أو

    خطأ تجزئة مزدوج أو فائض في المخزن المؤقت للفساد ،

    فهذا إلى حد كبير ما

    تواجهه طوال الوقت ولم يكن التقدير

    سعيدًا حول هذا الأمر ،

    فإن ما يفعله هو أنه

    جعل الصدأ لغة آمنة للذاكرة

    لمحاربة الأخطاء الأخرى التي رأيناها للتو

    من قبل

    ولكن مع نفس المزايا مثل C

    و C plus وهو الأداء المعدني العاري

    الآن

    Mozilla التي كانت الشركة

    كان التصنيف يعمل في الوقت الذي

    رأوا فيه أيضًا القيمة في هذا الأمر ، حيث اعتقدوا

    أننا نستخدم الكثير من الصدأ ونستخدم الكثير من

    C و C plus داخل Mozilla

    ونواجه هذا النوع من المشكلات المتعلقة

    بأمان الذاكرة طوال الوقت في Firefox

    على سبيل المثال ، لذلك قالوا إن الدرجات

    تعمل فقط على ذلك الوقت الكامل داخل Mozilla

    ودعنا نرى المزيد من الصدأ داخل Mozilla

    نفسها ، وقد

    حدث ذلك بالفعل خلال 10

    سنوات.





    حصل فريق الصدأ على هذا الحظر أو الإلغاء داخل أم

    موزيلا الآن في عام 2020 ، كانت الكثير من الشركات

    تستخدم بالفعل الكثير من الصدأ

    وأنشأوا هذا الشيء المسمى مؤسسة الصدأ

    وهذه مؤسسة المعصم

    مدعومة من قبل شركات صغيرة جدًا كما

    يمكنك أن تتخيل مثل AWS Google meta و

    Microsoft شركات كبيرة جدًا لديها

    أموال طائلة ترعى

    مؤسسة الصدأ في ضمان أن الصدأ

    يمضي قدمًا معها

    ولإعطائك منظورًا لمدى

    استثمار هذه الشركات في Rust ،

    هذا رسم بياني لإصدار Android

    منتجًا من Google وهذا الرسم البياني

    يمثل

    نقاط الضعف المتعلقة بسلامة الذاكرة التي يواجهها برنامج Android

    سنويًا ، ويمكننا أن نرى أنه في عام

    2019 ، يواجه مشروع Android أكثر

    من 200 نقطة ضعف تتعلق بسلامة الذاكرة

    في غضون أربع سنوات ، وبعد ذلك يكون

    الرسم البياني الزمني هنا في الأسفل يمكننا رؤيته أن

    برنامج Android يحتوي الآن على أقل

    من 100 نقطة ضعف في أمان الذاكرة ،

    لذا خمن ما الذي تغير خلال تلك

    السنوات الأربع من الوقت الذي

    بدأوا فيه بالفعل في تنفيذ المزيد من الصدأ داخل

    برنامج Android والآن

    لديهم نفس القدر من الراحة في

    C رمز داخل منتج Android

    أجنبي

    حتى أن Google قالت إنه

    تم اكتشاف ثغرات أمنية في الذاكرة الصفرية في

    رمز صدأ Android ، لذا يتم شحن كل الكود الجديد

    في بقية الأجزاء ، وكلها لا تحتوي على

    ثغرات أمنية في الذاكرة وأيضًا

    أعضاء مسيطرون في

    مجتمع JavaScript وهو Ryan المنشئ من

    العقدة في Dino كلا وقتَي تشغيل

    نظام JavaScript البيئي ، قال إنني أمتلك

    أكثر متعة في كتابة الصدأ هذه الأيام

    ولن أبدأ مشروع c plus مرة أخرى ،

    لذلك هذا مستخدم C plus plus بكثافة

    والذي يقول إنني لن أستخدم C plus

    plus مرة أخرى

    الآن إلى جانب سلامة الذاكرة التي

    يجلبها الصدأ إلى المشاريع ، فهو أيضًا يحسن

    تجربة المطور كثيرًا ، هناك

    هذا الشيء الذي يطلق عليه

    مسح مطور تجاوز المخزون الذي يتم إجراؤه

    كل عام

    والباقي للسنة السابعة على

    التوالي لغة البرمجة الأكثر محدودية

    في العالم مع ثمانين

    بالمائة من الانتظار ، أكثر من 80 بالمائة

    من المطورين الذين يعملون مع الصدأ

    يريدون الاستمرار في العمل مع الراحة الآن

    لأن هذا مؤتمر PHP

    اعتقدت أنه من المضحك أن أرى في الواقع

    مكان PHP في كل هذا

    جيدًا



    الآن أن نكون صادقين حقًا

    يختلف قليلاً لأن الأشخاص الذين بدأوا في

    العمل مع الصدأ بدأوا على الفور

    مع اللغة الحديثة مع كل هذه

    الميزات التي يمتلكها الصدأ ومع PHP

    ليس عادلاً ، لذا فإن PHP لديها 40 بالمائة من

    المطورين الذين يعملون مع PHP لا يزالون تريد

    الاستمرار في العمل مع PHP وهذا ما

    يحدث في رأيي ،

    لأنه ليس كل شخص محظوظ بما يكفي

    للعمل مع PHP الحديثة ، لذلك لدينا الملحن

    PHP Stan Peach Punit في الماضي وليس

    الجميع محظوظين بما يكفي للعمل مع

    PHP الحديثة هناك لا يزال الكثير من

    مطوري PHP الذين يعملون مع مشاريع Legacy

    الآن بعد أن يقال ، دعنا ننتقل إلى بعض

    الأكواد هنا ، لذا فإن ما سنفعله

    اليوم هو أننا سنقوم

    بتطبيق CLA بسيط في وقت الراحة

    والذي سيكون مهمة قائمة في CLI

    حيث يمكن للأشخاص إضافة مهام ثم

    عرض جميع المهام على ما يرام ، لذلك

    سأعرض عليك تطبيقًا بسيطًا جدًا للراحة المنتظمة وسأعرض

    لك هذا العرض الذي يعرض لك بعض

    العناصر المكافئة في PHP حتى يتمكن الجميع من

    التعرف عليها والبدء بها

    حسنًا ، سأنتقل هنا إلى

    الجهاز الطرفي الخاص بي في Sublime Text الذي هو

    المحرر المفضل لدي ، ثم لدي هذا لعمل نسخة

    احتياطية في حالة تعطل الأمور عن القضبان ،



    وآمل ألا يكون ذلك

    أول شيء سنفعله هو

    التثبيت الصدأ على جهازي ، فقط ضع في

    اعتبارك أن التثبيت الإجمالي على

    جهازي يعمل بنفس الطريقة التي يتم بها

    تثبيت الصدأ على

    نظام التشغيل Ubuntu أو نظام التشغيل Windows وما

    عليك فعله هو كتابة هذا الأمر الذي

    يسمى هذا البرنامج النصي تم معالجته جيدًا

    ويمكنني تنزيله إنه مع curl على سبيل

    المثال وتشغيله وما يفعله الباقي هو

    تثبيت ثنائيتين على

    جهازي أحدهما هو الصدأ C والآخر

    هو Cargo بخير ، لذا سنحصل على

    هاتين الأداتين الصدأ C والبضائع بمجرد

    تشغيل هذا البرنامج النصي

    بمجرد تشغيله ، نحصل على إمكانية الوصول إلى Cargo and

    cargo لنمنحك ما يعادله على PHP

    هو إلى حد كبير مؤلف الصدأ مع

    هذا يمكننا إضافة التبعيات وإزالة

    التبعيات وحتى بدء مشروع جديد ،



    لذا فهذه هي الأداة الأولى التي نحصل عليها

    بعد الشحن نحصل أيضًا على شيء يسمى

    العنوان C والصدأ C

    يعادل إلى حد كبير ثنائي PHP

    بمعنى أنه مع الإنقاذ تقوم

    بالفعل بترجمة الكود الذي يمكنك تشغيله

    بعد ذلك ، وباستخدام PHP تقوم بتفسير

    وتشغيل الكود ، لذلك هناك

    جزء مكافئ في لغات مختلفة

    الآن مرة أخرى مع البضائع ، يمكنك إضافة

    التبعيات ، وإزالة التبعيات ،

    أو بدء مشروع جديد ، يمكنك فعل

    الشيء نفسه مع الملحنين ، وإنشاء

    مشروع ، لذلك دعنا نفعل ذلك سأقوم

    بكتابة البضائع التي تحتاج إلى القيام بها الآن شيء واحد يجب أن

    تضعه في الاعتبار هنا هو أنه إذا

    قمت بذلك فقط على هذا النحو ، فسأنشئ

    تطبيقًا ثنائيًا جديدًا ، ولكن إذا مررت

    خيار شرطة شرطة ، سأقوم

    بإنشاء حزمة جديدة مثل مكتبة

    بشكل أساسي يمكن للآخرين استخدامها في هذه الحالة.

    سأقوم بإزالة حافة اندفاعة الشرطة

    وسأقوم ببساطة بكتابة البضائع التي

    نحتاج إلى القيام بها في هذا لأن التعليقات الواردة من

    المحطة تخبرني أننا

    سننشئ تطبيقًا ثنائيًا

    الآن ، دعنا نلقي نظرة على

    بنية الملف هنا ، لذا سأفتح هذا

    لأفعله على يساري وسأفتح

    هذا الملف باسم

    cargo.tomel file ، حيث إن

    cargo.com تعادل

    composer.json مما يعني أن لدينا كل

    البيانات الوصفية معلومات حول تطبيقنا

    في هذه الحالة ، من الواضح أن لدي

    اسم تطبيقي وهو

    إصدار تطبيقي وهو 0.1

    على الجانب المكافئ في PHP ، ونحن في

    الواقع نضع علامة على استخدام git tag

    لمعرفة إصدار الحزمة

    ولكن عند استخدام Rust إصدار العلم هذا

    ثم لدينا إصدار الصدأ ، أما

    الإصدار الباقي فهو مكافئ

    لإصدارات PHP لدينا php5 php7 php8 ولكن

    مع الصدأ ، نعمل مع الإصدارات بشكل جيد

    وهذا هو الإصدار المطلوب

    لتشغيل مشروع الصدأ الخاص بي

    ثم في الجزء السفلي I لديك قائمة

    التبعيات هذه المشابهة

    للتبعيات المطلوبة للملحن حيث يمكنني

    تحديد تبعيات المجتمع التي

    يستخدمها مشروع الراحة الخاص بي ،

    ويمكنني المجيء إلى هنا والقيام بشيء مثل

    Chrono يساوي

    4.0.0 وهذا يعني ببساطة أن

    مشروعي يستخدم المجتمع مكتبة التاريخ والوقت من

    الصدأ وهي Chrono

    لتطبيق CLI الخاص بي ، فأنا في الواقع لا أحتاج إلى أي

    تبعيات ، لذا سأبقي هذه

    القائمة فارغة في الوقت

    الحالي أريد أن أعرض عليك

    ملف cargo.log وهو ملف آخر ولهذا

    سأقوم بتجميع مشروعي لأول

    مرة ، ولكي أفعل ذلك ، سأقوم

    ببساطة بكتابة تشغيل البضائع

    لأرى أنني بحاجة للدخول في المجلد

    أولاً

    ثم سأقوم بكتابة تشغيل البضائع الآن

    عندما أكتب البضائع تشغيل أول شيء

    أراه في الأعلى هو خطوات التجميع

    لمشروعي حتى أتمكن من رؤية أن مشروعي

    قد تم تجميعه ثم الانتهاء من التجميع

    وبعد ذلك هو نوع من تنفيذ

    الثنائي نتيجة التجميع

    ويمكنني رؤية Hello World على وحدة التحكم الخاصة بي

    وهو بالضبط ما يخبرني به كود المصدر الخاص بي



    الآن بمجرد تشغيل البضائع لأول مرة

    يمكنني بالفعل تشغيل قائمة انتظار cargurun Dash

    وهي طريقتي المفضلة لتشغيل

    البضائع والتي تخفي بشكل أساسي جميع

    خطوات التجميع التي أراها هنا في الأعلى.

    يطبع بالضبط ما يطبعه برنامجي ،



    لذا بمجرد تشغيل البضائع لأول مرة

    أحصل على هذا الملف وهو cargo.lock

    وهذا إلى حد كبير يعادل



    الملحن.



    ثم لدي أيضًا هذا المجلد الهدف

    الذي يحتوي على جميع

    الملفات المؤقتة الناتجة عن

    التجميع ، وأريد منك نوعًا ما أن تتجاهل

    هذا المجلد في الوقت الحالي ، فقط ضع في اعتبارك أن

    هذا المجلد الهدف يمثل بعض

    الملفات المؤقتة المستخدمة في عملية

    التجميع

    ثم لدينا دليل المصدر الخاص بنا بحيث يكون

    مكافئًا مسبقًا لـ PHP ولكن في

    دليل المصدر هذا لدينا

    ملف main.rs الخاص بنا ، يعد main.rs

    مكافئًا لملف index.php العام

    وهو نقطة دخول تطبيقك

    ويمكنني أيضًا رؤية ذلك في هذا

    main.rs ، لدي وظيفة بالاسم

    main وهي نقطة دخول تطبيقي على حد سواء

    ويمكننا أن نبدأ فورًا في

    فهم بعض الأشياء هنا حول Russ ،

    أول شيء هو إعلان

    الوظائف التي يمكنني إعلان الوظائف باستخدام

    F والكلمة الأساسية بعد ذلك إعطاء

    اسم الوظيفة ثم قائمة

    المعلمات الآن كما ترون هنا

    لم يتم تحديد النوع ، وهذا

    شيء رائع عن الراحة وهو أن

    الاستدلال بالنوع قوي جدًا ، لذا إذا

    أردت أن أكون صريحًا يمكنني القول أن

    الإرجاع نوع هذه الوظيفة باطل ، لذا فإن

    هذا هو المكافئ لشيء PHP

    مثل هذا بشكل أساسي ، لذا هنا هذه

    الوظيفة تعيد الفراغ الذي لا يعني

    شيئًا ، وبعد ذلك عندما يكون لديّ

    طباعة ماكرو OLN والتي تشبه الوظيفة التي

    تعرض عالم Elder وبالطبع إذا كنت

    تشغيل البضائع هنا

    يمكنني رؤية Hello World على وحدة التحكم الخاصة بي ،

    لذا

    فنحن نقوم بتطبيق CLI مرة أخرى ، لذا من

    المحتمل أن يكون أول شيء نحتاج إلى القيام به

    هنا هو شرح الاستخدام للمستخدم

    الذي سيكون شيئًا مثل الاستخدام للقيام به

    وهي الطريقة التي أستخدمها أرغب في استخدام

    تطبيقي ثم القيام بذلك ثم

    تمرير الأمر وأخيراً قائمة

    بهذه الحجج

    لا بأس بها ،

    لذا من الواضح أنه إذا قمت بتشغيل البضائع ، يجب أن أرى

    هذا على وحدة التحكم التي أفعلها ، فما

    يمكنني فعله أدناه هو الكتابة الآن قائمة

    الأوامر وقائمة

    الأوامر ستكون في

    الأساس شيئًا مثل هذا الأمر

    يساوي أمرين بالطريقة التي

    نعمل بها مع أمرين اليوم أحدهما

    هو أساسًا يريد الأشخاص تشغيل

    إعلان تشغيل البضائع ثم تنفيذ المهام

    وصف مثل القيام بأحدهما على سبيل المثال

    والآخر الذي سنقوم ببنائه

    معًا هو القائمة

    لعرض كل شيء قمنا بإضافته إلى

    قائمة المهام ، لذا دعنا نوضح أنه

    للمستخدم سيكون أمر الإضافة

    الذي يتلقى الوصف

    كحجة ويضيف هذا الأمر مهمة

    واجبة ،

    ثم أدناه مباشرة لدينا أمر القائمة



    الذي يعرض بشكل أساسي

    كل ما يجب فعله

    إذا قمت بتشغيل هذا مع البضائع ، آمل أن

    تظل الأشياء تعمل كما هو متوقع

    وهي شيء يمكنني القيام به هنا

    لأجعله هذا أكثر إثارة قليلاً

    هو إعطاء بعض المساحة هنا ، حسنًا ، سأفعل

    ذلك ، ثم أقوم بتشغيل



    قائمة انتظار Dash للبضائع ، هناك نذهب

    وأرى الاستخدام مباشرة على

    الجهاز الطرفي

    الآن بعد أن عرفنا قليلاً عن

    الوظائف هل تبحث في هذه

    الوظيفة الرئيسية ، وهو شيء يمكننا القيام به هو

    استخراج هذا الاستخدام إلى وظيفة جديدة

    مع مساعدة عرض الاسم ، لذا دعنا نفعل

    ذلك العرض يساعد على إرجاع الفراغ

    ومن ثم سيكون جسم الوظيفة إلى حد

    كبير نسخة لصق من محتوى

    السابق الوظيفة الرئيسية وهنا

    سأقوم باستدعاء مساعدة العرض

    لمعرفة الاستخدام بنفس الطريقة التي أفعلها

    الآن

    بمجرد أن يكون لدينا

    الاستخدام ، سيتفاعل المستخدم بالفعل

    مع هذا مع أداة CLI هذه

    للقيام بشيء مثل تشغيل البضائع ثم

    تمرير الأمر الذي يمكن إضافته أو

    سرده ، لذا نحتاج إلى التقاط

    الحجج الخاصة بتطبيق CLA هذا

    الآن للقبض على الحجج ،

    يمكننا في الواقع استخدام شيء مبني على

    Rust ، أطلق عليه

    أهدافًا من المكتبة القياسية التي

    أريد التحدث عنها قليلًا عن ذلك ، لذا



    أريد في الواقع التحدث عن المتغيرات

    قبل ذلك ، فأنا آسف

    لذلك للقبض على الأمر الذي نحتاجه لالتقاط

    الحجج ثم الأمر ولكننا

    نحتاج إلى تخزين هذه القيم في مكان ما وعادة ما نقوم

    بتخزينها في المتغيرات

    ودعنا نتحدث قليلاً عن

    المتغيرات على Rust قبل أن

    نتحدث بالفعل عن المكتبة القياسية ،

    لذا فإن المتغيرات في Rust ليست في الواقع

    متغيرات مما يعني أنها لا تغير

    القيمة التي لا تتغير افتراضيًا ،

    وهذا يختلف قليلاً عن PHP نظرًا

    لأن المتغيرات يمكن أن تتغير ، فهي في

    الواقع متغيرات ، لذا استرح عندما

    أكتب شيئًا مثل أنني سأفعل

    هذا على مفتاح رئيسي

    عندما أكتب شيئًا مثل let command

    يساوي

    f

    ثم أكتب أدناه الأمر

    يساوي القائمة

    في PHP هذا سيعمل بمعنى أن

    قيمة الأمر ستتغير ، ولكن عند

    الراحة بمجرد أن أحاول تصحيح ما هو

    داخل الأمر ،

    سترى أن الصدأ سيبدأ في

    الشكوى ، لذا هناك أمران

    نحتاج إلى إلقاء نظرة على أولهما



    يخبرني المترجم الباقي على وحدة التحكم أنه لا يمكنك تعيين مرتين

    لمتغير غير قابل للتغيير مما يعني أنني

    قمت بتعيين القيمة المضافة هنا ولكن

    بعد ذلك بعد أن حاولت تعيين

    قيمة مختلفة للأمر المتغير

    ولن يعمل ذلك في Rust لذا

    المتغيرات غير قابلة للتغيير افتراضيًا الآن

    بفضل هذه التجربة الرائعة للمطورين

    على وحدة التحكم التي يمكننا القيام بها ، يمكننا أن

    نرى هنا يمكننا أن نرى أن روس

    يخبرني أنه يفكر في جعل هذا

    الربط قابل للتغيير وهو ما يمكن

    القيام به من خلال معنى الكلمة الأساسية كتم أنه إذا

    أتيت إلى هنا وقمت فقط بكتابة

    أمر مفتاح المزاج ، فسأتمكن الآن من رؤية

    قيمة

    الأمر الخاص بي على الجهاز وهو عبارة عن قائمة اكتب ذلك

    في الأسفل ولكن الصدأ

    مفيد جدًا مرة أخرى على وحدة التحكم ، إنه

    يخبرني حقًا على الرغم من أنك تقوم فقط

    بتعيين أمر مثل للإضافة ومن ثم

    لا يكون للتجاوز أدناه

    أي معنى لذلك

    سأخبرك بتحذير هنا

    ولكن برنامجي يجمع وهذا

    بفضل الكلمة الأساسية المزاجية التي تسمح

    لي بتغيير المتغيرات لذلك مرة أخرى ،

    المتغيرات غير قابلة للتغيير افتراضيًا عند

    السكون

    والآن بعد أن عرفنا كيفية

    إنشاء المتغيرات فعليًا ، يمكننا البدء في جمع

    الحجج القادمة من CLI والتوضيح

    حول

    هذا المتغير ، سأقول أن

    الأقواس عبارة عن متجه لـ السلاسل ،

    هذا هو المكافئ ، المتجه في

    Rust هو المكافئ للمصفوفة في

    PHP ، ومع ذلك يمكننا أن نقول ما هو

    داخل المتجه وهو

    قيم um التي هي سلاسل ،

    لذلك داخل الأقواس عبارة عن متجه

    للسلاسل وهذا المتجه من السلاسل سوف

    أن تكون شيئًا من المكتبة القياسية

    تسمى المكتبة القياسية

    ثم

    أعطني الأقواس من نهاية

    المكتبة القياسية

    لذلك أريد أن أتحدث قليلاً عن

    هذا ، فإن الصدأ القياسي للمكتبة هو

    إلى حد كبير بعض المساعدين الشائعين الذين يتم

    استخدامها بشكل شائع في مشاريع الصدأ حتى

    في كل لغة لدينا في الواقع ، فإن هذا



    يساعد إلى حد كبير الأشخاص الذين ينشئون تطبيقات

    على PHP ، لدينا مثل

    متغير الخادم العالمي والعالمي ، لدينا مجموعة

    من وظائف المصفوفات ، ولدينا

    أيضًا مكتبة التاريخ والوقت والتي تتيح

    لك إلى حد كبير إنشاء تطبيقات PHP مع هؤلاء

    المساعدين ، حسنًا ، لدينا هذه

    المكتبة القياسية التي تتيح لي الوصول

    إلى وحدات معينة ، أحدها هو

    وحدة amp التي يمكننا الحصول على

    الحجج من هذا بوضوح إذا حاولت



    تصحيح هذا لذا سأفعل التي

    آمل أن يكون لدي كل الحجج على وحدة التحكم الخاصة بي لدي



    خطأ هنا يمكنني استيراد هذا

    مثل هذا

    ما في

    Vector of strings الذي

    كان يجب أن يفعل هذا ،

    ما الذي يحدث بحق الجحيم ،

    أعطني ثانية وهذا هو السبب في أنني صنعت لأفعل



    هاه ، أحتاج إلى تسميته بجمع بالطبع ،

    أنا آسف على هؤلاء الرجال ولهذا

    السبب لديك نسخة احتياطية فقط

    في حال تم

    تجميعها الآن وفي الجزء

    السفلي لدي في السطر الثامن ناقل

    السلاسل الخاص بي وهو العرض

    بالثنائي ، ومع ذلك يمكنني إضافة الأمر ، وقد قمت

    الآن بعرض الأمر add على الجهاز الطرفي الخاص بي ،

    يمكنني تمرير

    وصف له على سبيل المثال ، ويمكنني

    رؤية هذا الوصف أو في Vector

    of strings الخاص بي

    حتى تتمكن من رؤيتنا. يمكننا استخدام

    dbg وظيفيًا ، وهو ما

    يعادل إلى حد كبير تفريغ yfr في PHP

    ويمكننا رؤية القيم التي تم تجميعها

    في وقت التشغيل ويمكننا رؤية هذه القيم

    على المحطة ، لذلك بمجرد أن نحصل على

    الوسيطات تذكر أننا نحاول

    التقاط الأمر ، لذلك عندما أكتب A

    Cargo ، نحتاج إلى التقاط هذه

    القيمة للقيام بشيء ما باستخدام

    الأمر كما يمكنك أن تتخيل إذا كان

    لدينا الأمر add ، فنحن بحاجة إلى القيام

    ببعض التعليمات البرمجية إذا كانت لدينا القائمة التي نحتاجها

    افعل شيئًا آخر يعرض

    جميع المهام ، وبعد ذلك إذا كان لدينا

    شيء لا معنى له ،

    نحتاج إلى إخبار المستخدم أن

    الأمر غير معروف ، لذلك دعونا نفعل ذلك ،

    دعونا نلتقط الأمر عن طريق القيام

    بشيء مثل الأمر let يساوي

    args الحصول على الفهرس رقم واحد لأنك

    تذكر أن الأمر موجود ضمن الفهرس

    رقم واحد وشيء واحد يسمى Rust

    والذي من المحتمل أن تتوقع رؤيته

    هنا هو أنه في PHP لدينا هذا الشيء

    مثل ESET إذا كان مفتاح المصفوفة موجودًا داخل

    المصفوفة ثم نلتقط القيمة جيدًا

    في حالة الراحة ، فلا توجد مستويات جديدة على ما يرام ، لذا

    أحتاج هنا إلى أن أخبرك بالراحة

    التالية لفك السلسلة داخل

    المفتاح رقم واحد وإلا

    فإننا نحتاج إلى تنفيذ

    رد الاتصال الافتراضي هذا ، لذا سأذهب للقيام بذلك ، سأقول

    حسنًا إذا كان هناك

    أي شيء في الموضع الذي هو

    الحال هنا ، ولكن هذا ليس هو

    الحال عندما لا أقوم بتشغيل أي أمر

    أريدك أن تعيدني تلك السلسلة ولكن

    بخلاف ذلك ستنفذ

    رد الاتصال الافتراضي هذا وعندما لا

    يقدم المستخدم الأمر ، ما نحتاج إليه

    هو عرض المساعدة تمامًا مثل ذلك

    ثم نحتاج إلى الخروج من البرنامج مع

    ملاحظات مع رمز الخروج ،

    سأفعل ذلك باستخدام وحدة العملية من

    الصدأ مرة أخرى ، مساعد

    وسأخرج مع الكود الثابت برمز

    الحالة 0 وأحتاج إلى استيراد هذه

    الوحدة هنا في الأعلى حتى تكون

    عملية المكتبة القياسية

    جيدة ، لذا دعنا نرى كيف يحدث هذا ،

    فلنصحح الأخطاء هنا أيضًا أمر

    لمعرفة ما إذا كان بإمكاننا التقاط F أو القائمة ،

    لذا سأذهب إلى قائمة انتظار Cargo run Dash وأرى

    المساعدة التي تعني أننا

    ندخل في رد الاتصال الافتراضي هذا ، فإن

    المفتاح الأول غير موجود

    ولكن إذا قمت بتشغيل البضائع تشغيل Dash Q F

    يمكنني رؤية الإعلان على وحدة التحكم وأرى

    قائمة الآن شيء رائع واحد وربما

    تشعر بنفس الشعور مع

    PHP Stand في المستوى Max هو أنه إذا كان

    البرنامج يجمع ما يعني أنه

    يعمل نوعًا ما كما هو متوقع فهذا

    شعور رائع جدًا عند العمل مع

    لغات المترجم مثل الباقي هو الشعور

    بأنه إذا تم تجميعه فهو نوع من

    العمل إلا إذا قمت بعمل خطأ مطبعي في مكان ما

    وهو شعور جيد جدًا عند

    العمل مع الصدأ

    الآن مرة أخرى في هذه المرحلة على

    متغير الأوامر لدينا القيمة المضافة لدينا

    قيمة القائمة ولكن لدينا أيضًا

    شيء إذا كتب المستخدم مثله

    وهو لا شيء على الإطلاق ، فلدينا الأمر

    بهذه القيمة التي لا

    تمثل في الواقع أي شيء لا

    نعرف ما يجب فعله به لذلك نحن بحاجة إلى بعض

    تدفق التحكم لفعل شيء ما عندما يتم

    إضافته لفعل شيء ما عندما يكون في قائمة ولإجراء

    شيء ما عندما لا

    يكون للقيمة أي معنى ولهذا يمكننا استخدام

    تعبير المطابقة

    والباقي لديه نفس الأشياء

    مثل PHP لذلك نحن لديك إذا كانت الظروف الصحية

    لدينا عبارة المطابقة

    وهي بالضبط ما

    سنستخدمه ويمكن إجراء المطابقة

    بشيء مثل هذا حسنًا ،

    دع كود الخروج يكون نتيجة

    تعبير المطابقة التالي إذا كان

    الأمر سلسلة

    تساوي القيمة المضافة التي

    كنت أرغب في القيام بها ضمن

    هذه الكتلة من التعليمات البرمجية

    إذا كان الأمر عبارة عن قائمة أريدك أن تفعل

    شيئًا آخر

    ولكن إذا كان الأمر شيئًا

    لا أعرفه يعني أنني أريد الدخول في

    هذا النطاق الافتراضي الذي أريده افعل

    شيئًا آخر ، والآن بعد

    أن أصبح لدينا عددًا صحيحًا

    من 32 بتًا على كود الخروج ، ما يمكننا

    فعله هنا هو ببساطة الخروج بكود الخروج هذا



    وبالطبع نحتاج إلى الحصول على

    رمز خروج من تعبير المطابقة الضخم هذا ،

    لذلك نحتاج إلى الكتابة بعض الكود هنا

    في الواقع ، لذا سأقوم بطباعة

    سطر جديد مع إضافة مهمة

    وإرجاع العدد الصحيح المكون من 32 بت

    0. الآن هناك شيء رائع جدًا عند الراحة هو

    أنه إذا كان لديك شيء مثل هذا

    يعني أن لديك رجوع بالإضافة إلى

    فاصلة منقوطة وهي السكر الاصطناعي

    الذي تقوم بإزالة الفاصلة المنقوطة

    ثم يمكنك إزالة الكلمة الرئيسية

    التي تبدو رائعة جدًا لذا فإن بعض

    السكر الصناعي ، إذا كان لديك هذا ، فهذا

    يعادل وجود

    هذا ، لذا يمكنك إخفاء الفاصلة المنقوطة

    وإخفاء بيان الإرجاع الذي هو في

    رأيي رائعًا جدًا ، اعتدت أن أرى المزيد

    من هذه الأشياء في PHP لأكون صادقًا ،

    ثم يمكننا القيام بنفس الأشياء في

    أمر list

    بدلاً من إضافتها للقيام بذلك ، فمن

    الواضح أننا نعرض كل ما يجب فعله

    ونعيد صفر عند في نفس الوقت

    وأخيرًا بالطبع ، إذا أدخلنا

    بيانًا افتراضيًا يعني أنه ليس

    لدينا إضافة أو قائمة ، نحتاج إلى إخبار

    المستخدم

    بأمر غير معروف

    وتحتاج إلى التراجع عن

    حالة الخروج 1 وهو خطأ لذلك دعنا نرى

    كيف يعمل البرنامج الخاص بي ، سأقوم

    بكتابة عروض

    cargoon-q ، فالمساعدة منطقية ،

    إضافة Dash Q التي تحتاج إلى القيام بها ثم

    قائمة لعرض كل المهام التي يجب القيام بها ، وبعد ذلك

    يمكنني رؤية أمر غير معروف

    حتى الآن إنه يعمل كما هو متوقع باستثناء

    القيام بالمهمة المناسبة لتخزين المهام

    وعرض جميع الأوشام ولكن أه

    أعتقد أنه يعمل بشكل صحيح

    قبل أن نتحدث قليلاً

    عن الكود الملموس الذي سنقوم بتخزين

    تلك المهام في طبقة ثابتة

    دعنا في الواقع نعيد صياغة هذه العناصر

    قليلاً لأنه في هذه المرحلة يحتوي الملف الرئيسي الخاص بي على

    42 سطرًا وللسبب نفسه الذي

    لا تقوم فيه بتخزين الكود

    الخاص بك



    في الفهرس. نفس الأشياء التي نقوم

    بإعادة تشكيل جميع الكود الخاص بنا بشكل أساسي عندما

    يتعين علينا النظر في هذا

    التطبيق على PHP ، كيف

    يمكنني معالجة هذه المشكلة ، ربما سأستخدم

    وحدة تحكم Symphony لهذا الأمر ، وربما يكون

    لدي فئة منفصلة تحمل

    اسم الأمر add to في الواقع التعامل مع

    عملية تخزينه للقيام به وبعد ذلك

    سأضيف أمر قائمة

    لعرض جميع المهام على الجهاز الطرفي الخاص بي ،

    لذلك دعونا نفعل ذلك عند الصدأ أو على الأقل نحاول

    فعل الشيء نفسه ، لذا ما سأقوم

    به القيام بذلك هنا

    هو أنه في دليل المصدر الخاص بي ، سأقوم

    بإنشاء ملف جديد سيحتوي هذا الملف على



    وظيفة commands.rs

    في هذا الملف ، وسأقوم بتخزين الكود

    الخاص بأمر إعلاني وسأبدأ

    فقط أسفل رمز أمر قائمتي

    مرة أخرى ،

    ليس لدينا فئات في البقية ولكن

    لدينا شيء يقولون إنه ليس

    مشابهًا ولكنه نوعًا ما هو لذلك يمكننا

    القيام بنفس الشيء مع شيء

    يسمى بهيكل

    لذلك هنا سأقوم بإنشاء

    شيء يسمى الأمر F الصارم

    وضمن هذا الهيكل يمكنني الحصول على

    خصائص مشابهة للفئات على PHP ، لذا

    يمكنني هنا الحصول على شيء مثل name

    يساوي سلسلة ومن ثم يمكن أن يكون لدي

    على سبيل المثال العمر يساوي عدد صحيح من

    32 بت هناك الكثير من أنواع dotty على

    Rust مثل عدد صحيح من 32 بت أعداد صحيحة غير موقعة

    وهي أعداد صحيحة موجبة

    ولكن اليوم لن نتحدث

    عن ذلك كثيرًا

    لذا أريد أن أمر الإعلان الخاص بي لم يكن لديه

    أي خصائص لـ الآن ،

    ومع ذلك ، فأنا بحاجة إلى طريقة واحدة على الأقل

    للتعامل مع عملية تخزين

    المهام على الطبقة الثابتة ، لذلك

    دعونا نضيف في الواقع بعض الطرق

    لتدمير الطريقة التي يمكننا بها القيام بذلك على الصدأ

    ليس ضمن تعريف الهيكل ، إنه

    فقط على النطاق أدناه ، لذا ما يمكنني فعله

    هنا هو شيء مثل تنفيذ

    الأمر F ، ثم سأضع جميع

    الطرق ضمن نطاق أوامر تنفيذ F هذا

    وسأفعله

    أولاً وقبل كل شيء ، إنشاء

    اتفاقية المُنشئ الخاصة بي بشأن الصدأ يستخدم

    اسم الوظيفة الجديد هذا ، لذا فإن الوظيفة الجديدة

    ترجع الذات وهي البنية

    بشكل أساسي ، إنها إلى حد كبير

    PHP للهاتف الخلوي أيضًا ،

    ثم داخل هذه الذات ضمن هذه

    الوظيفة ، سأقوم بإرجاع

    الأمر add

    بدون أي خصائص. تذكر أن تذكر

    هذا عندما يكون لديك فاصلة منقوطة

    يمكننا إزالة الفاصلة المنقوطة وإزالة الكلمة الرئيسية

    للعودة وجعل هذا الرمز

    أبسط قليلاً ،

    لذا فإن هذا يكافئ بنية

    في PHP وأسفله مباشرةً نحتاج إلى طريقة

    البنية التي ستتعامل بالفعل

    عملية الحصول على واجبات

    لطبقة ثابتة ، لذا دعنا نفعل ذلك

    سأقوم بكتابة مقبض الوظيفة

    ثم

    لا أريد بالفعل إنشاء

    طريقة ثابتة ، أردت أن تكون هذه الطريقة

    طريقة مثيل للبنية الخاصة بي ، لذلك سأقوم

    بالمرور هنا حسنًا ، هذا

    ما يعادل هذا في PHP حسنًا ،

    لذا فإن المقبض سيعيد

    عددًا صحيحًا من 32 بت تذكر أننا نحتاج إلى هذا

    مرة أخرى إلى بيان المطابقة الخاص بنا إلى

    رمز الخروج ، لذلك سيعيد هذا المقبض

    عددًا صحيحًا من 32 بت وضمن هذا النطاق ،

    نقوم بشكل أساسي بطباعة ما

    كان لدينا من قبل في بيان المباراة الخاص بنا ، لذا

    سأقوم بنسخ هذا الأمر

    داخل طريقة المقبض الخاصة بي

    وحفظ هذا فقط لإعادة السماح له

    بالوضوح التام إذا مررنا الذات ضمن

    الحجج التي تعني أن هذه الوظيفة

    غير ثابتة ، هي طريقة مثيل

    للبنية إذا لم أقم

    بتمريرها ، تصبح هذه الطريقة ثابتة مشابهة

    لـ PHP ،

    لذا في هذه الحالة أريد أن يكون هذا

    أسلوب مثيل لذلك سأقوم بتمرير

    الذات

    وأخيراً دعنا نستخدم بالفعل

    فئة AKA الهيكلية و PHP ضمن بيان المطابقة الرئيسي الخاص بنا

    حتى أتمكن من إزالة كل

    هذا الشيء واكتب الأمر add

    new ببساطة حتى أتمكن من استدعاء هذه الطريقة بشكل ثابت

    لأنني لا أنجح أي

    حجة ذاتية هنا ، ومع ذلك ، فإن طريقة المقبض

    غير ثابتة ، وذلك لأنني أقوم بتمرير

    الذات هنا ،

    لذا عند الأمر بمقبض جديد ، ومن المفترض أن

    يعود هذا إلى حد كبير ويخرج الكود ،

    فلنحاول تجميع تطبيقنا

    لنرى كيف يحدث

    هذا. سأقوم بمسح شحنة تشغيل المحطة

    ودعنا نستخدم

    ملاحظات المحطة للمضي قدمًا في هذا الأمر ،

    لذا

    تخبرني الشحنة على اليمين أن

    الأمر F لم يتم العثور عليه ضمن

    نطاق الوظيفة الرئيسية ، مما يعني

    أن الهيكل لم يكن كذلك تم استيرادها ، لذلك

    دعونا نفعل ذلك بالطريقة نفسها التي نستخدمها

    في PHP ، ننتقل فقط إلى

    الاختلاف الأول في الباقي وهو أنني بحاجة إلى

    إعلان أوامر الوحدة ، حسنًا ، لذلك على

    main.rs الخاصة بي أحتاج إلى التصريح عن كل

    ملف واحد موجود داخل دليل المصدر الخاص بي

    ومن ثم يمكنني استيراد

    الهيكل عن طريق استخدام أوامر

    إضافة الأمر ،

    لذلك قمت باستيراد دعنا نشغل البضائع مرة

    أخرى واتبع التعليقات

    الآن ، تخبرني البضائع أن

    أمر الإعلان الذي قمت باستيراده للتو

    داخل main.rs لدينا الملف عبارة عن

    بنية خاصة ، شيء آخر رائع جدًا حول

    الراحة هو أن الهياكل خاصة بشكل

    افتراضي مما يعني أنه عند إنشاء

    هذا الهيكل ، يكون الأمر خاصًا

    بملف الأوامر ولا يمكنك استخدامه

    في أي مكان آخر ما لم تستخدم هذه الكلمة الأساسية

    Pub وقمت بإنشاء هذا الهيكل عام ،

    سأقوم بمسح شحنة تشغيل المحطة

    مرة أخرى ودعنا نرى كيف تسير الأمور

    بعد ذلك ، تخبرني المحطة أنك

    تتصل بالجديد والمقبض

    ملتزم ، لكن كلاهما خاص ،

    لذا فإن الوظائف المنفذة على البنى

    هي أيضًا خاصة بشكل افتراضي مما يعني

    أنني بحاجة إلى الوصول إلى هذه الوظيفة بشكل جديد

    وجعل الوظيفة عامة بالفعل

    حتى أتمكن من استخدامها خارج تشغيل شحن الملفات الخاص بي ،

    يمكننا رؤية تعليمات العرض مما

    يعني أنني متأكد تمامًا من أن

    برنامجي يعمل كما هو متوقع لذلك إذا

    بدأت في لعبة Cairo Run ، فقد رأيت إضافة

    مهام وهي نتيجة وظيفة المقبض الخاصة بي ،



    حيث يستمتع الجميع بها أو لا يستمتع بها ، حسنًا ،

    هذا رائع ، دعنا نمضي

    قدمًا هنا ، لذا نحتاج إلى فعل

    الشيء نفسه إلى أمر list

    لنفعل ذلك لأنه ليس لدينا الآن

    أمر list حتى الآن مما يعني أن

    الكود الذي يتم تنفيذه موجود ضمن

    عبارة المطابقة هذه ، لذلك دعونا نفعل نفس

    السلوك الذي فعلناه مع الأمر add ،

    لذلك لدي هذا الرمز هنا.

    اذهب إلى ما عليك سوى نسخه ولصقه مثل

    الأيام الخوالي ،

    وضع Bam هنا في الأسفل ثم

    إعادة تسمية بعض الأشياء هنا بشكل واضح ، لذا

    سيكون هذا هو أمر القائمة الذي يعيد أمر

    قائمة جديدًا وأخيرًا

    طريقة التعامل بدلاً من توجيهه للقيام بذلك

    عرض

    أو عرض

    كل ما يجب القيام به على

    ما يرام ، لذا نأمل في تشغيل البضائع

    فعليًا ، فلنستخدم هذا الهيكل في

    بيان المطابقة الخاص بي ، لذا سيكون هذا

    أمر قائمة ، أعطني مثيلًا جديدًا لذلك

    ثم تعامل مع المهمة ، لذا إذا قمت بتشغيل

    البضائع ،

    فلنرى ما يخبرنا به إنه يخبرني

    بالطبع أن أمر list

    غير واضح مما يعني أننا بحاجة إلى استيراد

    هذا الهيكل داخل RS الرئيسي الآن

    شيء واحد رائع وأتمنى أن أرى ذلك في PHP

    أيضًا عندما ترى

    أنك تستورد كل شيء من

    Sim ملف ما يمكنك القيام به هو هذا

    الشيء هنا ، وهذا الشيء يستورد

    كل شيء من هذا الملف إنه نوع من

    البطاقة البرية التي تستورد بشكل أساسي

    وتتأكد من أن كل شيء في أوامر الملف هذا

    قابل للعرض داخل main.rs

    وظيفة السكر الاصطناعي الجميل مرة أخرى لذلك

    هذا رائع جدًا ، سأقوم بمسح

    شحنة تشغيل المحطة التي استطعت رؤيتها أنني

    لم أفعل ذلك ، فأنا متأكد من

    أن القائمة تعمل أيضًا كما هو

    متوقع مرة أخرى عند تجميع الصدأ ما لم تكن قد

    فعلت ذلك في اللغة الإنجليزية

    وهو أمر صعب مع go copilot هذه

    الأيام ،

    مما يعني أن برنامجك

    يعمل نوعًا ما كما هو متوقع ،

    حسنًا ، دعنا نتحدث عن

    الواجهات لأنني أعني بالنظر إلى

    هذين الأمرين لدينا الأمر F

    ولدينا أمر list

    وهو شيء نوع من التشابه هنا هو

    طريقة المقبض هذه ، مما يعني أن كلا

    المقاطعتين تنفذان نفس

    طريقة المقبض بنفس الطريقة التي تعني بدون

    وسيطات وإعادة

    كود الخروج مرة أخرى ، لذلك هناك شيء يمكننا القيام به هو أن نقول

    حسنًا كل من أمر list والأمر F

    وربما أخرى يحتاج الأمر في

    المستقبل إلى تنفيذ

    واجهة الأوامر على الأقل لجعلها جميعًا

    تبدو متشابهة ، لذا دعنا نتحدث عن

    الواجهات على Rust وسيكون هذا في الواقع

    ممتعًا ،

    لذا سأنتقل إلى وحدة command.rs الخاصة بي

    وأنا سأعلن هنا في

    الجزء العلوي من

    واجهة الأوامر الخاصة بي

    الآن ، هناك

    اختلاف واحد على الرغم من الصدأ هو

    أنك تعلن بالفعل عن واجهة مع

    سمة الكلمة ، حسنًا ،

    حسنًا ، حسنًا ، حسنًا ،



    هكذا في PHP لديك هذا الشيء الذي يسمى

    التجارة والذي يسمح لك بمشاركة

    الطرق بين

    لا يتأكد الأشخاص من الفصول الدراسية في الواقع ، مثل سبب

    استمرار الأشخاص في استخدامها ، ولكن على

    الصدأ من أجل الإعلان عن واجهة ،

    استخدم سمة الكلمات الرئيسية ، لذا

    فهذه هي في الواقع نفس الأشياء مثل

    الكتابة هنا كما هو الحال في أمر واجهة PHP ،

    حسنًا ،

    الاختلاف هو هذا مشابه لـ PHP ،

    يمكننا تحديد ما تفرضه هذه الواجهة

    فعليًا على تعريف

    طريقة التعامل التي تتلقى

    المعنى الذاتي غير ثابت ثم تعيد

    عددًا صحيحًا من 32 بتًا ، وهذا هو

    تعريف الواجهة الخاص بي ، ولكن في حالة الراحة ،

    يمكنك الحصول على تطبيقات افتراضية

    مما يعني أنه يمكنك تقديم حسنًا ،

    ستحصل البنية التي تنفذ هذه السمة على

    هذه الطريقة التي تعمل بهذه الطريقة حتى

    تتمكن من توفير تطبيق ملموس افتراضي لتقييد



    تنفيذ هذه الواجهة في الوقت الحالي ،

    سأقوم بعمل مماثل لـ PHP مما يعني

    أنني لا أفعل تريد توفير

    تطبيق افتراضي مما يعني أن الأمر متروك

    للهيكل لتحديد

    التنفيذ الملموس لطريقة المقبض ،

    لذلك بمجرد أن يكون لدينا واجهة تعامل

    وصدأ ، يمكننا نسخ الاسم

    وربما تتوقع القيام بشيء

    مثل

    أوامر التنفيذ التي لا تفعل ذلك ' لنعمل بهذه الطريقة ، لذا

    سأقوم بإزالته هنا

    وسأنتقل فقط في الجزء السفلي من

    الأمر "تنفيذ F" وسأقول إن



    تنفيذ الأمر التالي

    لأمر الإضافة هو التالي أدناه مباشرة لذلك

    فهو ليس ضمن تعريف البنية ليس

    ضمن أمر تنفيذ F الأول ،

    إنه أقل من تنفيذ

    الأمر للأمر f هو الأمر الموجود

    داخل هذا القوسين

    ومن ثم نحتاج إلى وضع جميع الطرق ،

    حدده من خلال تلك الواجهة ضمن ذلك

    تعريف النطاق لذلك سأقوم بنسخ

    هذه الوظيفة ومعالجتها كلها سأقوم

    بإزالتها هنا من الطرق

    بدون أي واجهة وسأقوم

    بنسخها أدناه مباشرةً ،

    حسنًا

    الآن شيء رائع واحد أرغب أيضًا في

    ترى في PHP أنه عادةً عندما يكون لديك

    واجهة ، فأنت نوعًا ما تحدد واجهة

    برمجة التطبيقات العامة لفئة معينة ،

    فلا أحد ينشئ واجهة مع

    طرق خاصة ، لذا هنا ماذا في Rust إذا

    كنت تحدد واجهة إدخال

    أو طرق ملموسة لـ تكون الواجهة

    لاستخراج

    جميع الطرق عامة بشكل

    افتراضي ، مما يعني أنه يمكنك إزالة

    كلمة Pub الرئيسية هذه ،

    وهي رائعة جدًا ، لذا نأمل أن لا

    تزال الأشياء تعمل كما هو متوقع أو

    لا ، لنرى تشغيل البضائع ، إنها

    تشكو والآن تشكو

    من البنية F لا يحتوي الأمر على

    طريقة مقبض

    ولماذا لأن

    الواجهات أو السمات في Rust هي

    في الواقع خاصة بشكل افتراضي مما يعني أنني

    بحاجة إلى جعل هذه الواجهة عامة لاستخدامها

    خارج نطاق

    الأوامر ،

    فلنقم بتشغيل البضائع مرة أخرى ونأمل أن

    تعمل كما هو متوقع لا

    يعمل كما هو متوقع ، هذا لأنني

    بحاجة إلى حفظه ، وأعتقد أنه دعونا

    نجعله ، دعنا نرى بالطبع

    أحتاج إلى حفظه هناك ، إنه

    يعمل الآن ويجمع ، وهو أمر

    رائع يمكننا فعل الشيء نفسه

    لأمر القائمة ، فلنفعل

    لذلك هنا في أمر القائمة يمكنني

    القيام به هنا مباشرة تنفيذ الأمر لأمر

    القائمة ،

    إنه الأمر الذي لدينا في معالجة الطريقة ، قم

    بإزالته من هنا في الأعلى

    وضعه داخل تعريف الواجهة ،

    إزالة الكلمة الرئيسية pub مرة أخرى لا

    من المنطقي أنها واجهة برمجة تطبيقات عامة ، فلنقم بتشغيل

    البضائع وبالطبع إنها تعمل كما هو

    متوقع وهو أمر رائع ، لقد

    حصلنا على رؤية متغيرات وظائف واجهات

    تبني أنواع البيانات كل هذا

    الجنون ، فلنبدأ بالفعل في ترميز

    الكود المسؤول للاستمرار في القيام بذلك

    ثم عرض كل to-do's

    وأردت أن أكون على دراية بأنك

    تحتاج حقًا إلى القيام بالباقي ، فأنت

    تحتاج فقط إلى معرفة مفاهيم

    البضائع هذه ، وكيفية تشغيل البضائع ، وكيفية تثبيتها ،

    ثم كيفية إنشاء هيكل ، وهذا

    ليس الشيء الوحيد الذي عليك فعلاً

    أن تفعل ما يرام عندما تحتاج إلى الوصول إلى

    كود ملموس ومعقد



    حقًا ، فسيقوم مساعد الطيار بعمل كل شيء من أجلك ، حسنًا ، لذا لا تحفظ

    كل شيء أنا على وشك أن أعرضه لك جيدًا ،

    لذا فإن الأمر نصف الموجود هنا

    تريد أن تبدأ فعلاً في الاستمرار في

    هذه المهمة ،

    لذا فإن الاستمرار في القيام بأول شيء

    يتعين علينا القيام به هو الحصول على وصف لذلك لفعل

    الأشخاص المناسبين سيقومون بتشغيل

    هذا الأمر بالطريقة التالية ،

    إضافة ما أقوم به وصف واحدًا على سبيل

    المثال ، لذا فأنت بحاجة إلى تقديم هذا

    الوصف لفعل ذلك ، فإن

    أول شيء يتعين علينا القيام به هو الحصول على

    الحجج ويمكنني فعل ذلك بالكتابة ، دعنا نجادل

    في الواقع لا ، أحتاج إلى تقديم

    هذه الحجج في الحجج لأننا

    نتذكر بالفعل الحجج

    والوظيفة الرئيسية هنا ، لذا

    نحتاج إلى توفير هذا الشيء

    لهيكل أوامر AV والطريقة التي

    سأفعل بها ذلك هي في الواقع من خلال إعلان

    خاصية جديدة لهيكل

    هذه الشاحنة سيكون لها خاصية

    بالاسم الأقواس التي هي متجه للسلاسل

    ثم على المُنشئ الخاص بي الذي هو

    الجديد الذي سأقدمه

    لهيكل هذه الحجج ، لذا سيكون هذا

    متجهًا للسلاسل بشكل متساوٍ ، وأخيرًا

    سأحتاج إلى تمرير هذه الحجة إلى

    خاصية الهيكل لذلك سأفعل

    شيئًا كهذا الآن مرة أخرى ، بعض

    السكر الصناعي من الصدأ هو أنه إذا كان

    اسم الخاصية مساويًا للحجة المعطاة ،

    يمكنك ببساطة فعل ذلك Ben وهو

    نفس الشيء تمامًا ، لذا فإن

    امتلاك هذا أو هذا مكافئ

    لذلك يمكنني فقط إزالة هذا وإعطاء

    الأمر ADD الحجج ودعنا

    نصحح

    هذه الأقواس الذاتية بحيث تكون نفسها مرة أخرى

    مكافئة لذلك ، فلنصحح هذه الحجج

    لنرى ما إذا كان لدينا شيء ما في

    المقبض ، فإن الطريقة التي

    يشتكي منها الصدأ تخبرني

    بعد إنشاء

    مثيل جديد للأمر f ويتم ذلك على

    وظيفة main.rs هنا ،

    فأنت لا تقدم متجهًا

    للسلاسل مما يعني أننا نفتقد وسيطة



    الوسيطات ، لذا دعنا نفعل ذلك

    هنا حيث نذهب ونجري البضائع

    ولدينا الآن قائمة

    الحجج داخل طريقة مقبض الأمر الخاصة بنا

    مما يعني أنه يمكننا الحصول على

    وصف لفعل ذلك

    الوصف يمكنني أن أرى أنه إذا قمت بكتابة أحد المهام الخاصة بي ،



    فسأتمكن من رؤية ذلك على رقم الفهرس

    اثنان من Vector الخاص بي ، لذلك نحتاج إلى كتابة

    شيء مثل هذا ،

    دع الوصف

    يساوي

    الأقواس الذاتية ، احصل على رقم الفهرس الثاني الآن

    تذكر أن الوصف قد يكون أو لا يكون

    موجودًا لأنه إذا قدم المستخدم

    إعلان تشغيل البضائع بدون الوصف ، فقد

    لا يكون لدينا في الواقع رقم الفهرس الثاني

    يعني أنه في هذه المرحلة ليس لدينا قيمة

    فارغة ، فلدينا بدلاً من ذلك

    خيار وصف يمكننا إلغاء تغليفه أو كما

    رأينا في الوظيفة الرئيسية ،

    ولكن في بعض هذه المرة سأفعل

    شيئًا مختلفًا

    عما أنا عليه سأفعل هذا فقط

    إذا كان هناك

    بعض

    الوصف

    وهذا قد يأتي من خيار الوصف ،



    سأجعل هذا

    أكبر قليلاً حتى يتمكن الجميع من المتابعة هناك



    إذا كان لديك بعض الوصف قادم من

    خيار الوصف الذي أريد تنفيذه

    هذا الرمز هنا ومن أجل ذلك

    سأقوم ببساطة بتصحيح الوصف

    نفسه

    ثم العودة مرة أخرى على الأرجح صفر

    لأننا سنضيف المهام

    وإلا أريد أن أقول للمستخدم

    أن الوصف مطلوب

    وأعيد الخروج مرة أخرى رمز الحالة

    رقم واحد

    حسنًا ، لذلك دعونا نلخص أننا نحصل على

    الوصف الذي هو خيار قد يكون أو

    لا يكون موجودًا في الفهرس رقم 2 ،

    ثم إذا كان لدينا وصف ،

    فسنقوم بإخراج الوصف أو

    بالطبع إرساله إلى وصف المستخدم

    مطلوب لذلك سأقوم بالركض وسأقوم

    بمسح المحطة الطرفية الخاصة بي هنا ، مما يجعل

    هذا أكبر قليلاً وسأقوم

    بكتابة البضائع Run f

    دون أي وصف على الإطلاق

    ويخبرني أن الوصف مطلوب وسأصل

    إلى انظر إلى هذا الشيء الأحمر الذي يعني أن

    رمز الخروج كان واحدًا ، وإذا قمت بكتابة

    تشغيل البضائع ، فقم بإضافته ،

    فسأرى ذلك بالضبط على

    المحطة الطرفية الخاصة بي ، مما يعني أنني أدخل

    بيان if هذا هنا

    الآن في هذه المرحلة ، لدينا وصف

    وهي عبارة عن سلسلة ويمكننا تخزينها في

    مكان ما على جهاز الكمبيوتر الخاص بي ، لذا فإن ما

    سأفعله لمتابعة تنفيذ ساذج للغاية هو

    أنه داخل الدليل الجذر الخاص بي ،

    سأقوم بإنشاء ملف

    باسم storage.txt

    حسنًا ، هذا الملف

    سنضع جميع المهام التي يجب أن يقوم بها الأشخاص هنا

    يستخدمون أداة CLI الخاصة بنا ،

    لذا ما يمكنني فعله هو استخدام وحدة نمطية

    من الصدأ تسمى نظام الملفات ، لذا

    سأقوم بالتمرير هنا في الأعلى. م

    ذاهب لاستيراد وحدة من الصدأ من

    المكتبة القياسية مرة أخرى شائع جدًا أن

    جميع اللغات بها شيء من هذا القبيل

    وسأقوم باستيراد وحدة نظام الملفات

    من الصدأ ثم أقل مما

    سأفعله ومرة ​​أخرى لن تحتاج

    بحاجة إلى حفظ كل هذا ، اكتب

    شيئًا مثل هذا ، دع

    الملف القابل للتغيير يكون مساويًا في

    خيارات فتح النظام السريع الجديدة وأريدك أن تفتح

    هذا الملف

    للكتابة في وضع الإلحاق

    وأخيرًا اسم الملف هو الذي يحتوي

    على اسم startage.txt

    إذا خرج شيء ما عن القضبان

    ولا ينبغي أن ينفجر عن القضبان ولكن إذا حدث شيء ما عن

    القضبان ، فأنا أريدك أن تكتب ملفًا

    غير موجود

    جيدًا ، لذا في هذه المرحلة نفتح

    هذا الملف للكتابة وما يمكننا فعله

    هو ببساطة اكتب الآن

    حسنًا في هذا الملف

    محتويات وصفي

    وهذا سيزيد بشكل أساسي كل

    وصف للمهام التي يجب القيام بها في الأسفل ، لذا

    دعنا ندير البضائع لنرى كيف تسير الأمور ،

    أحتاج إلى علامة التعجب هنا ، ننتقل إلى



    تشغيل البضائع ويضيف عدد المهام لقد رأيت

    خطأً يقول إن

    طريقة um غير موجودة في السطر الجديد ،

    حسناً ،



    أعطني ثانية

    الآن ، ستطبع الطباعة في هذه الحالة ،

    أريد حقًا أن أكتب على

    الجهاز ، أنت تعرف ما سأذهب إليه افعل

    شيئًا مختلفًا ،

    يجب أن يعمل هذا ،

    وإلا لدي النسخة الاحتياطية ،

    حسنًا ، سأرى النسخة الاحتياطية الحقيقية

    السريعة ، حسنًا

    بالطبع حسنًا ،

    ما سنفعله مرة أخرى ، نعم

    بالطبع على وظيفة Ln الصحيحة ،

    أحتاج بالفعل إلى المرور الملف كحجة

    أولى ، لذا مرة أخرى في هذه الحالة ،

    ما سأفعله هو أن أقول حسنًا اكتب

    لي في هذا الملف محتويات هذا

    الوصف هنا يمكنني تبسيط هذا

    قليلاً من خلال القيام بذلك ، اكتب

    محتويات هذا الوصف ولكن إذا

    حدث شيء ما عن القضبان ، فيمكننا أن نتوقع أن

    يكون الملف غير قابل للكتابة ، وبمجرد أن

    أفعل ذلك ، يمكنني تقديم ملاحظات لمستخدمي ،

    لذا أطبع

    وسطرًا جديدًا ، لذا الآن على وحدة التحكم

    لإضافته ،

    فلنقم بتشغيل هذا على البضائع لنرى كيف

    تسير الأمور مرة أخرى بدون أي شيء ، سوف

    يشتكي ، إنه في الواقع لم يتم

    تجميع التجميع وهذا لأنه

    من أجل استخدام هذه الوظيفة

    بالاسم ، اكتب Ln ، أحتاج بالفعل إلى استيراد

    هذا في الأعلى ، لذا دعنا نفعل ذلك

    مسح البضائع تشغيل المحطة مرة أخرى

    دون وصف من المفترض أن

    أدخل في الحالة "else" أدناه مباشرةً ،

    وأنا كذلك مطلوب الوصف ،

    ولكن إذا قمت بكتابة شحنة لأضيفها

    ثم أفعل رقم واحد ، على سبيل المثال ،

    يمكنني أن أرى ما سأضيفه وأنه

    متأكد إلى حد كبير على حسابي. ليس هذا

    هناك ، نذهب للقيام بالعدد الأول ، وإذا قمت

    بذلك على سبيل المثال للقيام بالرقم الثاني ،

    فسوف أرى ذلك أيضًا في ملفي الذي

    أعتقد أنه رائع جدًا ،

    حسنًا ، والآن بعد أن أصبحنا قادرين

    على إضافة مهام إلى هذا الملف ، فإن

    الخطوة الأخيرة هي بالفعل عرض جميع

    المهام المطلوبة عندما نكتب قائمة تشغيل البضائع ،

    لذا فإن الطريقة التي يمكننا القيام بها هي ببساطة عن طريق

    تعديل رمز طريقة التعامل

    داخل أمر القائمة ويمكن

    القيام بذلك بسيط جدًا عن طريق القيام بشيء مثل

    هذا ، دع المحتويات

    تكون مساوية لنظام الملفات وقراءة

    سلسلة المحتويات داخل

    storage.txt ،

    ولكن إذا حدث شيء ما ، فأنا

    أريدك أن تكتب

    ملفًا غير موجود

    وبمجرد أن نحصل على المحتويات ، يمكننا استخدام

    نفس اضغط باستمرار على

    سطر جديد هذا هو ما يعادل الطباعة

    في PHP ويمكنني أن أطبع

    محتويات هذا الملف ، ما عليك سوى اتباع نهج

    Nave لعرض جميع المهام ،

    لذا مرة أخرى ، قم بإضافة تشغيل البضائع إلى

    الرقم الجديد الثالث على سبيل المثال للقيام قم بتحريره بشكل

    رائع ويمكنني الآن تشغيل قائمة تشغيل البضائع

    للاطلاع على جميع المهام على الجهاز

    الطرفي مرة أخرى ، وهو تطبيق أصلي للغاية

    ولكن أنجز المهمة وقد

    رأينا للتو كيفية إنشاء تطبيق CLI

    على Rust والذي أعتقد أنه رائع جدًا ،

    حسنًا ، آمل أن يكون الجميع متحمسًا

    بشأن الصدأ على الأقل بالطريقة التي أريد

    أن أوضح لك شيئًا آخر قبل أن

    نغلق هذا ، أريد أن أريك

    اختبارًا جيدًا

    الآن للاختبار على Rust Works

    مختلفًا قليلاً عما أنت نتوقع في

    PHP أن نستورد أو نطلب

    وحدة PHP أو ماضية ، ثم نحتاج إلى إنشاء

    مجلد به اختبارات الاسم ثم

    ملف منفصل لكل حالة اختبار ، لذا فهي

    كتابة كثيرًا والباقي

    مختلف قليلاً لذلك من أجل إجراء

    اختبارات على سبيل المثال

    لوحدة الأوامر ، فأنت تقوم بالفعل بكتابة تلك الاختبارات في

    الجزء السفلي من الملف وهذا صحيح ، لذا

    في نفس الملف الذي لديك

    رمز المصدر الخاص بك أدناه ، ستخضع

    لاختباراتك

    لذا ما سنفعله يوجد هنا فقط

    قسم منفصل لاختباراتنا ،

    ثم سأقوم بكتابة

    رمز وحدة الاختبار هذا ، لذا أخبرنا بشكل أساسي بالراحة ،

    حسنًا ، كل الكود أدناه مرتبط

    بالاختبارات ، لذا في اختبار الوحدة الخاصة بي ، أريد

    استيراد كل شيء في هذا الملف

    يمكن أن يتم ذلك باستخدام كلمة Super ثم

    Wild Card

    ثم لدينا هذا التعليق التوضيحي

    لتحديد أنه ضمن هذا الشيء هو اختبار

    الآن يمكننا إجراء اختبارين فقط

    لعرض كيفية عمل الاختبار على Rust ،

    لذا ما أريد القيام به هنا ببساطة قم

    بإضافة أمر على سبيل المثال لإجراء اختبار

    وتذكر الأمر add الذي نحتاجه

    لتوفير إنشاء بنية جديدة باستخدام

    الأمر name على سبيل المثال ، ثم

    نحتاج إلى تمرير الوسيطات إلى هذا

    الأمر Struct F لذلك سأذهب أولاً وقبل كل

    شيء ، لإنشاء مصفوفة من الوسائط

    التي ستكون متجهًا يحتوي على

    الثنائي في الموضع الأول ،

    تذكر ،

    لذا سيكون هذا أمرًا يجب القيام به في السلسلة ، ثم

    لدينا اسم الأمر وهو إضافة

    إلى سلسلة أيضًا ،

    ثم لدينا وصف المهام

    الذي يشبه ما أقوم به من رقم

    أربعة

    إلى سلسلة

    جيدة ، لذلك بمجرد أن يكون لدينا الحجج ، نعد

    نوعًا من اختبارنا ،

    يمكننا إنشاء بنية جديدة

    للأمر F والتي ستكون أمرًا

    يساوي إضافة أمر واستدعاء

    الطريقة الثابتة للطريقة الجديدة والتي هي

    البناء داخل هذا الجديد يمكنني تمرير

    الحجج الخاصة بي وقد

    أعددت اختباري بنجاح يمكنني الآن التصرف في الجزء

    السفلي الذي يمكن إجراؤه ببساطة عن طريق

    تخزين رمز الخروج

    كنتيجة لمقبض الأمر بذلك

    النوع من التمثيل ثم التأكيد بشكل صحيح ،

    فما يمكنني فعله في الأسفل يسمى فقط

    تأكيد القسم ويقول فقط

    الآن أن هذا يشبه إلى حد ما PHP

    على الرغم من أنني أستطيع كتابة تأكيد يساوي ثم

    تقديم ما أحاول تأكيده

    وهو الخروج الكود سيكون صفرًا ،

    حسنًا ، فلنرى لنشغل هذا الشيء

    لنرى كيف تسير الأمور

    ويختلف أيضًا عن PHP هو أنك

    تتوقع تشغيلها مثل وحدة PHP للمورد

    أو عندما يتم تمريرها وفي

    هذه الحالة تكتب فقط اختبار الشحن

    وهو نوع من أنواع البضائع المضمنة ،

    لذا إذا أجريت اختبار شحن ، فسترى الكثير من

    الأشياء على المحطة مرة أخرى لتجنب

    ذلك ، يمكنك ببساطة مسح قائمة انتظار

    اختبار الشحن الطرفي ، تخفي قائمة انتظار Dash جميع

    خطوات التجميع فقط لأنك لا تفعل ذلك أحتاج

    إلى رؤيتهم

    وأرى أن نتيجة الاختبار الخاصة بي على

    ما يرام ، مما يعني أنني أحصل على رمز خروج 0

    من طريقة المقبض الخاصة بي ، وإذا كنت على سبيل

    المثال أجتاز واحدًا هنا ، فمن الواضح أن اختباري

    سيفشل مع رمز الخروج رقم واحد ،

    لذلك دعونا نجري هذه

    الفئة q وأنا أحصل على هذه التعليقات على

    وحدة التحكم الخاصة بي بأن القيمة اليسرى واحدة

    ولكن القيمة اليمنى هي صفر مما يعني

    أن اختباري يفشل

    حتى أتمكن من وضع 0 لإجراء هذا الاختبار

    ثم يمكنني القيام بالأشياء نفسها أدناه

    أمر القائمة الذي

    سأفعله حسنًا ، أنا فقط انسخ والصق

    ثم اتصل بأمر القائمة هذا

    لإعداد أمر القائمة ، ولست بحاجة إلى أي

    حجج على الإطلاق ، لذا سأقوم فقط

    بإنشاء حجة

    بدون هذه الحجج أنا فقط أدرج

    الأشياء ، ثم سأقوم باستدعاء

    طريقة المقبض لاستعادة رمز الخروج الخاص بي

    وإدخال رمز الخروج هو صفر ،

    فلنقم بتشغيل اختبار الشحن Dash queue

    وأرى أن كلا الاختبارين

    يجتازان والاختبار النتيجة على ما يرام

    وهذا إلى حد كبير ما كان علي أن

    أعرضه عليكم



    بضع ملاحظات صغيرة اليوم لقد

    أظهرنا للتو تنفيذًا ساذجًا للغاية

    للصدأ كتطبيق CLI بالطبع

    حالات استخدام Rusty هي طريقة أكثر

    تنوعًا من هذا هنا على سبيل المثال

    لدي موقع الويب الخاص بي على مدونتي مكتوبة بالفعل

    على Rust ، لذا إذا كنت تريد أن ترى

    قليلاً كيف يبدو كود الصدأ في

    الإنتاج ، فانتقل إلى GitHub

    nunomodo.com الخاص بي وهو اسم المشروع

    وستحصل على بعض الأشياء

    المثيرة للاهتمام و الأشياء الحارة على Rust

    مثل خيوط المعالجة المتعددة غير المتزامنة ، لذا فإن

    الأشياء الرائعة والآمنة جدًا

    على GitHub الخاص بي ، ستجد عددًا من

    مشاريع الراحة بما في ذلك إطار عمل CLI

    في الواقع ،

    لذا فإن هذا المشروع معلق على gitsap.com

    كان هذا صدأ

    لمطوري PHP. لقد استمتعت بمشاهدتي وأنا أرتكب

    الأخطاء وهو أمر رائع جدًا ، فلا









    تتردد في متابعي على مواقع التواصل الاجتماعي الخاصة بي.

    الكثير من



    [تصفيق]

    أي أسئلة أجنبية ،

    لذلك كنت أتساءل مثل هل لديك

    أي نصائح أو

    أمثلة عن الأماكن التي يمكننا الذهاب إليها للتعلم

    بمجرد أن نتقن ما أظهرته بالفعل ،



    نعم ،



    سأخبرك في الواقع الطريقة التي

    تعلمت بها الصدأ الذي قد

    يعمل من أجلك ، آمل أن تكون الطريقة التي

    نجحت بها بالنسبة لي هي أنني بدأت أتعلم

    من كتاب Rust وهو اسم

    التوثيق الرسمي للصدأ

    لأكون صادقًا حقًا يكتبون

    كلمات بسيطة جدًا حتى للغة الإنجليزية غير الأم

    مثلي وشعرت أنني

    تعلمت ذلك حقًا من الكتاب الباقي ، ومن

    ثم أيضًا أن شيئًا ساعدني

    كثيرًا هو مع مساعد GitHub ، فأنت تحصل على

    الكثير من الإكمال عندما تكون مثل

    أه

    أم عندما تواجه مشاكل ،

    فأنت لا تعرف كيفية حلها ، فأنت في

    الواقع تسأل مساعد كتاب الطيار أن

    يكتب الكود لك حتى لو لم يكن

    مثل الرمز الصحيح ، فأنت على الأقل

    أنت. قادرون على التعلم من هناك ،

    لذا فإن كتاب الملابس هو طريقتي إلى حد كبير

    عندما تركض الصدأ ، ولكن

    العب به واللعب مع

    مساعد GitHub ، كما أنه سيساعدك في الأساس

    على القضبان أشعر وكأنك

    مرحب بك

    واحدة سريعة جدًا ، لقد لاحظت أنك تمتلك نفسك

    في لعبة Upper S وكأحرف صغيرة ، نعم ، هل

    هي غير حساسة لحالة الأحرف

    كلغة

    أه لا يعني أنك

    في الواقع سأحتاج إلى التحقق مرة أخرى من ذلك ولكن

    في حالة الذات ، فعندما

    تعود رجوع ، سأذهب

    إلى هناك حقًا سريعًا ، لقد

    كنت تتحدث بوضوح عن هذه

    الذات هنا ، لذا عندما تعود إلى

    هنا ، يمكنني فعل شيئين يمكنني القيام به على سبيل

    المثال أمر القائمة فقط

    تحديد البنية التي سأعود إليها

    ولكنك يمكن أن تستخدم هذا السكر الاصطناعي بشكل أساسي

    وتقول إنك تريد أن تعود

    بنفسك وهذا يجب أن يكون كبيرًا

    ولكن عندما تستخدم

    الحجة الذاتية وهي أن هذا على PHP

    يجب أن تكون حرفًا صغيرًا هنا ، حسنًا ،

    البنية التحتية وراءها

    الأطر و كل هذا النوع من الأشياء

    كيف يمكن مقارنته بـ PHP

    um هذا سؤال جيد حتى أتمكن من إخبارك

    من التجربة مرة أخرى أنني لست

    خبيرًا في Rust ولكن من التجربة أه من



    أجل خدمة تطبيق PHP على

    قطرات رقمية على سبيل المثال ،

    سأحتاج إلى وضعها خلف ngx ولدينا

    PHP fpm وأيضًا كل هذه

    الأدوات المختلفة التي أستخدمها بشكل أساسي

    كتكوينات افتراضية لأنني

    لا أعرف كيفية تكوينها ولكن

    في الباقي كان

    علي ببساطة أن أقوم بالوكيل و Jinx إلى

    خادمي على Rust وكان ذلك يعمل بشكل أساسي ،

    لذلك كان لدي خادم بسيط للغاية على Ubuntu

    يخدم

    تطبيق الويب الخاص بتطبيق الصدأ ، وبعد ذلك

    لدي فقط n Jinx يقوم بتوكيل جميع

    الطلبات إلى هذا الخادم وهذا يعني أنه

    لا يوجد مكافئ لـ PHP fpm بالنسبة لنا

    جميعًا ، أعتقد أنني رأيتك

    تغرد مرة أنك كنت

    تبحث وتجرب

    لغات أخرى للعثور على بعض المعرفات الجديدة لـ

    PHP نعم وللحزم والأشياء الخاصة بك ،

    نعم كنت أتساءل عما إذا كان هناك أي

    أشياء بعض الأشياء التي وجدتها في Rush

    أنت تريد تنفيذ نعم في الواقع ،

    نعم ، سؤال ممتاز ممتاز

    بالمناسبة ، لذلك هناك شيء قمت بالفعل بتحويله

    إلى Laravel نفسه ، لذا في Laravel لدينا



    رمز PHP حيث يمكنك فعلاً

    قيم تفريغ VAR حتى تتمكن من استخدام شيء

    مثل قيمة DD ومن ثم الحصول على وحدة التحكم

    بإخراج قيمة السلسلة ، لذلك

    هناك شيء لم يكن لدينا ويمكنك

    العثور عليه على Rust ، لا أعرف ما إذا كنت قد

    لاحظت ولكن عندما كنت أقوم بتنفيذ كود الصدأ الخاص بي ،

    يمكنك رؤية هذا أم أه

    أين تحصل عليه جيدًا لترى

    بجانب قيمة التصحيح ،

    أصل DD بشكل أساسي ، فأنت تعرف

    ذلك عندما تستخدم على Rust شيئًا

    مثل هذا ،



    هذه الوظيفة مثل dbg ، ثم تضع

    الأمر في الداخل في وضع الراحة ،

    ترى قيمة الأمر وأيضًا

    أصل قيمة

    الملف الذي يأتي منه على PHP ،

    لم يكن لدينا ذلك على الأقل في laravel DD ،

    لذا فقد قمنا الآن بالفعل بنقل هذا

    الشيء عند الغوص في بعض

    قيمة التفريغ باستخدام دالة DD على PHP

    يمكنك الاطلاع أيضًا على الملف الموجود على وحدة التحكم ،

    لذلك هذا شيء تمكنت بالفعل من

    نقل PHP وهو أمر رائع جدًا ، وكان

    السؤال الأخير قبل ذلك هو

    وقت الكيك ،

    شكرًا لك ، لقد كان عرضًا جيدًا جدًا

    لدي سؤال حول الإضافة الأمر

    حيث تستخدم بيان الملف وكنت

    أتساءل هل يمكنك استخدام إلغاء التغليف أو

    غير ذلك كما تستخدم في main.rs

    سؤال جيد نعم يمكنني استخدام إلغاء التغليف أو

    غير ذلك في هذه الحالة أريد أن

    أعرض قليلاً حول ما

    إذا السكر الاصطناعي هنا ، وهو أمر جيد إذا كان

    لديك شيء ما تنشئ متغيرًا

    به ، ولهذا السبب قمت

    بعرضه بهذه الطريقة ، لذا يمكنك دائمًا الحصول على

    خيار عندما تستخدم

    شيئًا قد يكون أو لا يكون فارغًا ، لذا

    في هذه الحالة يمكن أن تفعل شيئًا

    كهذا وهو إنشاء متغير من

    شرط if ، ولكن يمكنك أيضًا

    القيام بذلك كما ذكرت عدم التفاف أو ما

    هو أشبه بـ "حسنًا" ولف

    السلسلة ، وإلا قمت بتنفيذ هذا

    الاستدعاء الافتراضي ، لذلك أردت عرض كليهما

    لهذا السبب لقد فعلت ذلك سؤالًا جيدًا بشكل مختلف



    وأشكركم على التصفيق مرة أخرى



    [تصفيق]

    3,004 changes: 3,004 additions & 0 deletions fr.md
    3,004 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.