abcdefg12345
اصل پوسٹر- 10 جولائی 2013
- 21 اکتوبر 2017
تیز رفتار 4
کوڈ: |_+_|
میں ایک متغیر سٹرنگ استعمال کر رہا ہوں کیونکہ مجھے اس کی سٹرنگ کی ضرورت ہے تاکہ میں اسے بعد میں فارمیٹ کر سکوں، میں نے اس کی تعریف کی
کوڈ: |_+_|
abcdefg12345
اصل پوسٹر- 10 جولائی 2013
- 21 اکتوبر 2017
کوڈ: |_+_|
0002378
معطل
- 28 مئی 2017
- 23 اکتوبر 2017
اور، جب کہ اختیاری کے اپنے فوائد ہیں، وہ مجھے اپنے کمپیوٹر کو ڈمپسٹر کے اوپری کناروں سے توڑنے پر مجبور کرتے ہیں۔
تاہم، جہاں سوئفٹ واقعی گدا کو لات مارتی ہے وہ بندش کے شعبے میں ہے ... اوہ ہاں! جاوا میں بھی ان کے پاس ہے، لیکن...
اور، یقیناً، یہ حقیقت کہ سوئفٹ اقسام اور ان پریشان کن نیم کالونوں کے اعلان میں کم سخت ہے... بہت اچھا!
ردعمل:abcdefg12345
0002378
معطل
- 28 مئی 2017
- 24 اکتوبر 2017
آپ کو نئے متغیر کی ضرورت نہیں ہے۔ آپ صرف شامل کر سکتے ہیں '!' آپ کے ڈبل (سٹرنگ) پر، اور یہ کام کرے گا۔
میرا اندازہ ہے کہ میں اس معاملے میں سوئفٹ کے بیوقوف ہونے کے بارے میں غلط تھا۔ لیکن، میں نے ایسی کمپائلر شکایات کے بہت سے معاملات کا سامنا کیا ہے (دو مختلف عددی اقسام کا موازنہ کرنے سے قاصر)۔
گرین
- 15 جولائی 2015
- فورٹ ورتھ
- 24 اکتوبر 2017
یا آپ قدر کو کھولنے کے لیے اختیاری بائنڈنگ استعمال کر سکتے ہیں۔ میں ان طریقوں میں سے کسی ایک کو فورس کھولنے سے پہلے آزماؤں گا۔
gnasher729
معطل
- 25 نومبر 2005
- 24 اکتوبر 2017
maculateConception نے کہا: مجھے لگتا ہے کہ سوئفٹ، بطور زبان، بعض اوقات کافی ہنسنے والا ہوتا ہے۔ جاوا پروگرامنگ سے آرہا ہے۔ اور، آپ نے اس کی ایک بہترین مثال پیش کی۔یہ بالکل بے خبر ہے۔ مسئلہ یہ ہے کہ او پی کو سوئفٹ کی ایک بنیادی خصوصیت کے بارے میں نہیں معلوم، جو کہ اختیاری اقدار ہیں۔ کنسٹرکٹر ڈبل (اسٹرنگ) واضح طور پر ناکام ہوسکتا ہے اگر اسٹرنگ میں کوئی نمبر نہیں ہے۔ یہی وجہ ہے کہ ڈبل (اسٹرنگ) ڈبل ٹائپ کا نتیجہ نہیں بناتا اور نہیں بنا سکتا، لیکن ڈبل ٹائپ میں سے ایک؟ ، یہ ایک اختیاری ڈبل ہے۔ اور اختیاری ڈبل کا موازنہ Int سے نہیں کیا جا سکتا۔
آپ کا 'حل' واقعی، واقعی خوفناک ہے۔ ! مطلب 'مجھے یقین ہے کہ یہ تبدیلی کامیاب ہوگی۔ اگر ایسا نہیں ہوتا ہے تو براہ کرم ایپ کو کریش کریں۔ let d = ڈبل ('1234x')! بس کریش ہو جائے گا. جان بوجھ کر۔ کیونکہ آپ نے صفر کی جانچ نہیں کی، اور یہ صفر تھا۔
درست طریقہ غلطی کی جانچ کرنا ہے۔ مثال کے طور پر
اگر let d = Double (MyValue)، d > 10 {
// MyValue میں ایک نمبر ہے، اور نمبر ہے > 10۔
} اور {
// MyValue میں کوئی نمبر نہیں تھا، یا نمبر تھا۔<= 10.
}
اگر آپ کو لگتا ہے کہ کوڈ لکھنا فائدہ مند ہے جو محفوظ ہے اور حقیقت میں کام کرتا ہے، تو Swift صحیح زبان ہے۔
0002378
معطل
- 28 مئی 2017
- 24 اکتوبر 2017
gnasher729 نے کہا: یہ بالکل بے خبر ہے۔ مسئلہ یہ ہے کہ او پی کو سوئفٹ کی ایک بنیادی خصوصیت کے بارے میں نہیں معلوم، جو کہ اختیاری اقدار ہیں۔ کنسٹرکٹر ڈبل (اسٹرنگ) واضح طور پر ناکام ہوسکتا ہے اگر اسٹرنگ میں کوئی نمبر نہیں ہے۔ یہی وجہ ہے کہ Double (String) قسم Double کا نتیجہ نہیں بناتا اور نہیں بنا سکتا، لیکن ایک قسم Double؟ ، یہ ایک اختیاری ڈبل ہے۔ اور اختیاری ڈبل کا موازنہ Int سے نہیں کیا جا سکتا۔
کیا آپ کو اسکول میں تنگ کیا گیا تھا؟ ایسا لگتا ہے کہ آپ کی خود اعتمادی کافی کم ہے کیونکہ آپ مجھ پر حملہ کیے بغیر جواب نہیں دے سکتے تھے۔
یہ آپ سے میری پہلی اور آخری بات چیت ہوگی۔ آپ کے لیے تجویز - زیادہ سول انداز میں بات چیت کرنے کی کوشش کریں، اور زندگی بہت اچھی گزرے گی۔ خیال رکھنا.
گرین
- 15 جولائی 2015
- فورٹ ورتھ
- 25 اکتوبر 2017
gnasher729 نے کہا: درست طریقہ غلطی کی جانچ کرنا ہے۔ مثال کے طور پر
اگر let d = Double (MyValue)، d > 10 {
// MyValue میں ایک نمبر ہے، اور نمبر ہے > 10۔
} اور {
// MyValue میں کوئی نمبر نہیں تھا، یا نمبر تھا۔<= 10.
}
یہ مبہم ہے - اگر قدر ہو تو کیا ہو۔<= 10 should produce different results from the value being nil? To be fair, the OP's post is ambiguous as they were forcing the unwrap, meaning a nil value would crash. However in most business cases, a nil value would be handled differently (safely) from an insufficient value.
ایک بہت صاف طریقہ یہ ہوگا:
کوڈ: |_+_|
اگرچہ، میں واقعی میں سوچتا ہوں کہ MyValue کو شروع سے ہی ڈبل کے طور پر اسٹور کیا جانا چاہیے، اور جو بھی فارمیٹنگ کی ضرورت ہو اسے سنبھالنے کے لیے ایک NumberFormatter کو بعد میں نافذ کیا جائے۔ جو بھی کوڈ کو پڑھتا ہے اس کے لیے اس کا علمی بوجھ بہت کم ہوتا ہے۔
gnasher729
معطل
- 25 نومبر 2005
- 26 اکتوبر 2017
maculateConception نے کہا: کیا آپ کو اسکول میں غنڈہ گردی ہوئی؟ ایسا لگتا ہے کہ آپ کی خود اعتمادی کافی کم ہے کیونکہ آپ مجھ پر حملہ کیے بغیر جواب نہیں دے سکتے تھے۔
یہ آپ سے میری پہلی اور آخری بات چیت ہوگی۔ آپ کے لیے تجویز - زیادہ سول انداز میں بات چیت کرنے کی کوشش کریں، اور زندگی بہت اچھی گزرے گی۔ خیال رکھنا.
ٹھیک ہے، میں نے آپ پر حملہ نہیں کیا. میں نے آپ کی پوسٹ پر حملہ کیا، جس سے ظاہر ہوتا ہے کہ آپ Swift کے بارے میں بہت کم جانتے ہیں، اور اس میں ایک انتہائی خطرناک تجویز بھی شامل ہے۔ ایس
سائرس
کو
- 21 اگست 2008
- 26 اکتوبر 2017
داخل کریں
- 14 اپریل 2018
- 14 اپریل 2018
1) '!' آپ نشان کو شامل کر کے اشارہ کر سکتے ہیں کہ یہ قدر بالکل درست ہو گی۔
کوڈ: |_+_| 2) قدر کی وضاحت کرتے وقت آپ قسم کی وضاحت کر سکتے ہیں۔
کوڈ: |_+_| TO
انٹرپرائزز
- 28 جنوری 2006
- 27 اپریل 2018
ynstek نے کہا: Swift، یقین نہیں ہے کہ آپ کی قیمت بالکل int ہے۔ اس بات کو یقینی بنانے کے لیے دو اختیارات ہیں۔
1) '!' آپ نشان کو شامل کر کے اشارہ کر سکتے ہیں کہ یہ قدر بالکل درست ہو گی۔
کوڈ: |_+_| 2) قدر کی وضاحت کرتے وقت آپ قسم کی وضاحت کر سکتے ہیں۔
کوڈ: |_+_|
مجھے لگتا ہے کہ آپ کی #2 مثال ناکام ہو جائے گی کیونکہ آپ سٹرنگ کاسٹ کو انٹ متغیر کو ڈبل کرنے کی کوشش کر رہے ہیں۔ اس کے علاوہ، آپ فرض کر رہے ہیں کہ MyValue صفر نہیں ہے، جو رن ٹائم کی خرابی کا سبب بن سکتا ہے اگر یہ صفر یا غیر عددی ہو۔
آپ کی #1 مثال کی وضاحت بھی درست نہیں ہے۔ ایک فجائیہ نشان کسی قدر کو Int میں تبدیل نہیں کرتا ہے۔ یہ ایک اختیاری متغیر کی قدر کو کھولتا ہے۔ آپ کی مثال میں، آپ کا اختتام ڈبل ویلیو کے ساتھ ہوگا، Int نہیں، اور صرف اس صورت میں جب MyValue صفر یا غیر عددی قدر نہ ہو۔
مقبول خطوط