مصنوعی ذہانت کا جولیا- کیا آپ واقعی متغیرات کی گنجائش کو سمجھتے ہیں؟

بیدو انسائیکلوپیڈیا نے جولیا کو سائنسی کمپیوٹنگ کے لئے اعلی کارکردگی والی متحرک اعلی سطحی پروگرامنگ زبان قرار دیا ہے۔ اس کا مطلب یہ ہے کہ جولیا کو سائنسی کمپیوٹنگ اور مصنوعی ذہانت کے شعبے میں بہت زیادہ فوائد حاصل ہیں اور یہ دونوں فیلڈ اب سب سے زیادہ گرم ہیں۔ لہذا جولیا سیکھنے کا امکان اب بھی اچھا ہے۔

کسی بھی زبان کے لئے متغیرات کے دائرہ کار کو سمجھنا بہت بنیادی اور بہت ضروری ہے۔ کیا جولیا کی گنجائش دوسری زبانوں کی طرح ہے جو آپ بخوبی جانتے ہو؟

جولیا 1.0 نے متغیرات کے دائرہ کار میں نسبتا large بڑی تبدیلیاں کی ہیں۔یہ مضمون صرف جولیا 1.0 میں متغیرات کے دائرہ کار پر مرکوز ہے۔

ہم جس مسئلہ پر گفتگو کرنا چاہتے ہیں اس کا تعلق درج ذیل کوڈ سے ہے:

اگر مذکورہ کوڈ پر عمل درآمد کیا گیا تو ، الف اور بی کی اقدار کا کیا بنے گا؟ شاید آپ خود بھی کوشش کریں کہ یہ دیکھیں کہ جیسے آپ سمجھتے ہیں وہی ہے یا نہیں۔

اس کا جواب ہے: فنڈ_ا () چلانے پر یہ کوڈ ایک استثناء دے گا: ERROR: UndefVarError: b کی وضاحت نہیں کی گئی ہے ، دوسرے الفاظ میں ، کوڈ پریشانی کا باعث ہے۔

آئیے پہلے فنک_ بی کا تجزیہ کریں ، پھر فنک_ا کا تجزیہ کریں ، پھر اختصار کریں ، اور آخر میں دو چھوٹے سوالات پھینک دیں۔ جو دوست دلچسپی رکھتے ہیں وہ اس کے بارے میں کوشش کر سکتے ہیں اور سوچ سکتے ہیں ، اور تبصرے کے علاقے میں اپنا جواب بتاسکتے ہیں۔ میں ہر ایک کو بات چیت کرنے کی ترغیب دیتا ہوں۔

نوٹ: وضاحت کی سہولت کے ل we ، ہم فرض کرتے ہیں کہ REPL میں درج ذیل کوڈ کو پھانسی دی گئی ہے ، یعنی ، عالمی متغیر ماڈیول مین سے تعلق رکھتے ہیں۔

ایک func_b کا تجزیہ کریں ()

ہماری تفہیم (یقینا اب غلط ثابت ہوئی):

b + = 100 کے ل our ، ہماری تفہیم b = Main.b + 100 کے برابر ہے۔

دائیں جانب مین.ب میں عالمی متغیر بی ہونا چاہئے ، جو 1 ہے۔ متغیرات میں ماڈیول کا سابقہ ​​ہوتا ہے ، جس سے یہ ظاہر ہوتا ہے کہ یہ ماڈیول میں عالمی متغیر ہے ؛ تقریب میں بائیں طرف کی بی تفویض کی گئی ہے ، لہذا یہ ایک مقامی متغیر ہونا چاہئے۔ آخر میں ، فنک_ب () آپریشن 101 واپس کرنا چاہئے ، اور مین. بی بدلا نہیں جائے گا ، ابھی بھی 1 ہے۔

اصل صورتحال:

ہمیں واضح طور پر دیکھنا ہے ، جولیا اس کو کس طرح سنبھالتا ہے ، ہمیں جولیا ہمیں فراہم کرنے والے ٹولز کو استعمال کرنے کی ضرورت ہے ، جو ہم یہاں استعمال کرتے ہیں ٹویٹ ایمبیڈ کریں میکرو ، یہ ایک CodeInfo اعتراض پیدا کرتا ہے ، جس سے ہمیں یہ دیکھنے میں مدد ملتی ہے کہ جولیا کس طرح اظہار رائے پر کارروائی کرتی ہے۔

٪ 1 کو عارضی متغیر کے طور پر سمجھا جاسکتا ہے ، پھر مذکورہ کوڈ انفو اظہار کا معنی b = b + 100 ہے ، اور پھر٪ 1 واپس کریں۔ یہاں بی میں کوئی بھی سابقہ ​​نہیں ہے ، جس سے یہ ظاہر ہوتا ہے کہ بائیں اور دائیں جانب بی مقامی متغیر ہیں۔ پھر ظاہر ہے کہ b + 100 غلط ہے ، کیونکہ بی یہاں غیر متعینہ ہے اور پہلے استعمال ہوتا ہے۔

دو func_a () کا تجزیہ کریں

ہماری سمجھ:

a. + = 100 a = Main.a. + 100 کے برابر ہے۔ ". +" ایک نشریاتی عمل ہے ، جس کا مطلب مین.ا کے ہر عنصر میں 100 شامل کرنا ہے۔ پھر آخر کار مقامی متغیر a اور واپسی کے ل a ایک قدر تفویض کریں ، مین.اے کو تبدیلی نہیں ملے گی۔

اصل صورتحال:

مندرجہ بالا کوڈ انفو کا اظہار اس طرح کیا جاسکتا ہے:

مادizeائلائز! (مین.ا ، براڈکاسٹڈ (مین.: + ، مین.ا ، 100))

براڈکاسٹڈ (مین.: + ، مین.ا ، 100) مین.ا ہے۔ + 100۔

اور اجزاء بنائیں! () کا مطلب ہے کہ مذکورہ بالا کا نتیجہ۔ + آپریشن براہ راست مین.اے کو شامل کرتا ہے۔ نوٹ کریں کہ فنکشن کا نام "!" کے ساتھ مستعمل ہے۔ جولیا میں ، اس قسم کے فنکشن کو کال کرنا عام طور پر اصل پیرامیٹرز کو تبدیل کرتا ہے۔

حتمی نتیجہ یہ ہے کہ فنکشن فنک_ا () میں ، a. + = 100 مین.ا = مین.ا کے برابر ہے۔

تین آخر میں:

جولیا میں:

غیر منقولہ اشیاء کے ل the ، سلوک func_b () کی طرح ہے

تغیر پزیر اشیاء کے ل the ، سلوک func_a () کی طرح ہے۔

"جولیا میں اسٹرنگز بدلاؤ یا ناقابل تبدیلی ہے؟ "میں نے ذکر کیا کہ جولائی میں سٹرنگ میں تبدیلی کی جاسکتی ہے ، لیکن نوٹ کریں جولیا اب بھی تاروں کو غیر منقولہ اشیاء کی طرح دیکھتی ہے .

آخری دو چھوٹے سوالات یہ ہیں:

سوال 1: اگر func_a مندرجہ ذیل طور پر دوبارہ لکھا جائے تو کیا ہوتا ہے؟

فنکشن فنک_ا () a = a. + 100 ختم

سوال 2: اگر میں func_b () کو عالمی متغیر b میں ترمیم کرنا چاہتا ہوں تو ، func_b () کیسے لکھیں؟

میوزک ٹیلنٹ لیکسائیڈ یونیورسٹی میں داخل ہوا ہے! کمپنی کی سالانہ آمدنی 30 ملین سے تجاوز کر گئی ہے ، اور ہو یان بین نے "مسٹر ہو" نسبتا گرم ہونے کا دعوی کیا ہے
پچھلا۔
انہیں سال کے سی پی کے لئے شارٹ لسٹ نہیں کیا گیا تھا ، اور نیٹیزین نے ٹی وی بی کو "مشکوک" بنا دیا۔
اگلے
AI امپیکٹ فیکٹر اکتوبر انوینٹری، Tencent AI Lab نے دوبارہ نمبر 1 جیت لیا
نئے ریڈ ڈیویلس ای سپورٹس موبائل فون کا باضابطہ اعلان 6 نومبر سے ہجوم فنڈنگ ​​شروع کردے گا
2018 جنوب مشرقی DX3 / DX3 SRG فروخت پر ہے: 67،900 سے
"ٹریسا ٹینگ کا قیامت": ورچوئل انسان کا سہ فریقی خیال
کیا آپ جانتے ہیں کہ جولیا میں قدیم قسمیں کیسے بنائیں؟
متحرک sc شروع سے گہری کمک کمک سیکھنے کے ساتھ تیزی سے شروعات کریں ، اوپن اے آئی نے سیکھنے کے وسائل جاری کیے
ون پلس 6 ٹی نے سرکاری طور پر نقاب کشائی کی ، جس کی شروعات بیرون ملک 549 امریکی ڈالر ہے
کہا جاتا ہے کہ ما گوومنگ رواں سال ریس کے ساتھ جانے کا عزم رکھتی ہے ، اور شہنشاہ پہلے انعام کی حیثیت سے ٹی وی بی کے چار ٹھوکریں کھا رہے ہیں۔
"اوڈ ٹو جوی" دیکھنے کے بعد ، میں نے خراب چینی ڈرامہ کے بارے میں شکایت کی ، لیکن کوئی بھی "بائی لو یوآن" دیکھنے نہیں گیا۔
پورش 718 جی ٹی ایس کی سرکاری تصویر: متحرک اور جامد دونوں کے ساتھ ایک سیکسی اسٹنر
سمارٹ ڈرائیونگ ممبرشپ پروگرام 20182018 کی سب سے مضبوط فلاحی لہر! ڈبل 11 ، ہمارے 4 بڑے فوائد ہیں
برانڈ | مقامی ٹیلنٹ ٹریننگ سسٹم کو مستحکم کریں ، اور بی ایم ڈبلیو آفٹر مارکیٹ میں بنیادی فوائد پیدا کریں