خوش اومدی به پروژه کوچیک بعدی.
می‌خوام چندتا ترفند بهت نشون بدم.
خب.
پس دو تا چیز هست که توی این ویدیو می‌خوام بهت نشون بدم.
Thread.sleep اولی هست و دومی اینه که چطور یک خط جدید بسازیم.(line break)
باشه.
اگه بخوای توی یک رشته خط جدید داشته باشی باید از بک‌اسلش استفاده کنی n
بذار بهت نشون بدم چطور کار می‌کنه.
string myStringپس hi و من میگم .
و بعد بک‌اسلش n و دوباره hi، چیزی شبیه این.
حالا بذار این رشته رو اینجا توی حلقه چاپ کنم for
پس من از cw استفاده می‌کنم و بعد رشته رو چاپ می‌کنم.
خب.
بذار یکم اسکرول کنم پایین‌تر تا بهتر ببینی.
Enter این بک‌اسلش n مثل اینه که دکمه رو بزنی و بری خط بعدی.
پس این همون line break هست که اینجا می‌بینی.
پس من این شکست خط رو دارم.
و بعد یک فاصله خالی دارم.
و دوباره می‌نویسم hi.
این همون چیزیه که اینجا اتفاق میفته.
و چند بار هم تکرار میشه.
دلیلش اینه که می‌بینی قبل از شکست خط یک فاصله خالی دارم.
و بعد از شکست خط هم یک فاصله خالی دیگه دارم.
پس اگه بخوام می‌تونم اون رو حذف کنم.
تا hi و hi دقیقاً روی همدیگه باشن، همونطور که اینجا می‌بینی.
پس الان نوشته hi و hi.
و این کاریه که بک‌اسلش انجام میده.
پس این یک کاراکتر escape هست.
توی رشته‌ها بک‌اسلش یک کاراکتر escape محسوب میشه.
این یعنی هرچی بعد از بک‌اسلش بیاد دیگه به عنوان متن در نظر گرفته نمیشه.
n بلکه یک عملکرد خاص داره، مثل همینجا که عملکرد .
خاصش خط جدید هست
به معنی خط جدید هست n پس
و این کمی منطقی‌ترش می‌کنه، درسته؟
پس اینجا بک‌اسلش N یعنی خط جدید، باشه.
این روی یونیکس خیلی خوب کار می‌کنه.
ولی اگه روی سیستم‌عامل‌های دیگه اجراش کنی ممکنه درست کار نکنه.
تو این حالت می‌تونی از بک‌اسلش r بک‌اسلش n استفاده کنی.
اینطوری روی مک، ویندوز و لینوکس هم کار می‌کنه.
اگه من از بک‌اسلش R بک‌اسلش n استفاده کنم تقریباً همون نتیجه رو می‌گیرم.
بذار اجراش کنیم تا ببینی.
می‌بینی همون نتیجه رو گرفتم.
این بهش می‌گن carriage return.
پس این \r باشه؟ carriage return بهش می‌گن
دکمه Return روی کیبوردت، مثل Enter، همون return key هست.
و این کاریه که بک‌اسلش انجام می‌ده R
خُب.
گفتم که می‌خوام بهت نشون بدم چطور از Thread.sleep استفاده کنی.
این متد داخل thread هست و اسمش sleep هست.
داخل پرانتز می‌تونی تعداد میلی‌ثانیه‌ای که می‌خوای برنامه متوقف بشه رو وارد کنی.
این چیزی نیست که تو اپلیکیشن‌های واقعی بخوای استفاده کنی، چون برنامه‌ت رو کاملاً می‌خوابه.
توی اون مدت هیچ کاری انجام نمیده.
یعنی عملاً می‌گیم نرم‌افزار توی این مدت هیچ کدی اجرا نکنه.
پس این فقط برای آزمایش توی برنامه‌های کنسولی خوبه.
نه اینکه کرش کنه.
بلکه هیچ کاری انجام نده، هیچ کدی اجرا نشه.
ولی تو محصولات واقعی یا پروژه‌های نهایی نباید ازش استفاده کرد.
یه داستان هست درباره یه نفر که برای یه شرکت نرم‌افزار می‌ساخت و کلی sleep اونجا گذاشته بود،
و این باعث شده بود محاسبات خیلی کند بشه.
بعد به شرکت گفت می‌تونم نرم‌افزار رو بهینه کنم در ازای مبلغی.
اون هم تنها کاری که کرد این بود که عدد sleep رو مثلاً از 1000 میلی‌ثانیه کرد 800 میلی‌ثانیه.
و نرم‌افزار سریع‌تر شد و شرکت هم خوشحال شد.
گفتن عالی، نرم‌افزارمون خیلی بهتر شد.
بعد اون گفت می‌تونم بیشتر بهینه کنم ولی زمان و هزینه بیشتری لازمه.
بعد دوباره کمی عدد رو تغییر داد و نرم‌افزار باز سریع‌تر شد و همه خوشحال شدن.
و همینطور ادامه پیدا کرد.
ولی در نهایت یکی دیگه کدها رو بررسی کرد و فهمید چه کاری کرده
و اون فرد به مشکل خورد.
دقیقاً نمی‌دونم داستانش چطور بود، ولی چیزی شبیه این بود.
بازی نکنید Thread.sleep پس بدونید، زیاد با
اجرا کنیم و ببینیم Thread.sleep حالا برنامه‌مون رو با
برابر ده هست counter میگه
hi.
برابر نه هست counter
hi, hi.
پس حالا بعد از هر بار تکرار، یک ثانیه مکث می‌کنه.
و بعد تکرار بعدی اجرا میشه.
پس الان واقعاً یک تایمر شمارش معکوس داریم.
بیایم این hi hi رو حذف کنیم.
و فقط تایمر رو اجرا کنیم.
counter ده، counter 9,8,7,6,5 و همینطور ادامه پیدا می‌کنه.
خب، برای ویدیوی بعدی یک پروژه کوچیک و باحال آماده کردم که خیلی ساده‌ست.
ولی فعلاً همینقدر کافیه.
پس می‌بینمت تو ویدیوی بعدی.
خداحافظ.