اینجا قراره کلی اطلاعات مفید و باحال یاد بگیریم:)
تفاوت دو تابع substr و substring
سلام سلام ما هپی لرن هستیم و شما دارید ششمین پست اموزشیمون رو از سایت ویرگول میخونید. در هپی لرن دربارهی موضوعات و مهارت هایی صحبت میکنیم که فارغ از این که شما با چه زبان برنامه نویسی دارید کد میزنید و یا چند ساله که دارید در حوزه برنامه نویسی فعالیت میکنید، میتونه بهتون کمک کنه تا در مسیر درست قرار بگیرید و سطح رضایتتون از کد زنی بالا ببرید. شما میتونید مقالات ما رو شنبهها و جمعه ها از همین صفحه دنبال کنید.
در جلسه سوم با این موضوع اشنا شدیم که اگه بخواهیم قسمتی از یک ارایه را جدا کنیم باید از توابع slice و splice استفاده کنیم،در این قسمت قراره با توابعی اشنا بشیم که برای جدا کردن قسمتی از رشته ها از انها استفاده میکنیم.
تابع substr : این متود میتونه دو تا ورودی بگیره، ورودی اول ایندکس شروع و ورودی دوم تعداد کاراکتری که قراره جدا بشه. خروجی هم میاد اون بخش از رشته رو که در ورودی مشخصاتشو معلوم کردیم بهمون برمیگردونه.
در مثال اول خروجی ما میشه اون بخش از رشته که از ایندکس 1 شروع شده و طولش برابر با 4 هست. در مثال دوم چون ما به این تابع یک ورودی دادیم خروجی از ایندکس شروع تا اخر رشته است.
نکته ای که جالب اینه که ما میتونیم به ورودی اول substr عددهای منفی بدیم. ایندکس های منفی از اخر رشته یا ارایه شروع میشن، مثلا 1- نشون دهنده اخرین کارکتره و 2- دومین کاراکتر از اخرو نشون میده.
تابع substring :این تابع هم همانند تابع substr میتونه دوتا ورودی بگیره که ورودی اول ایندکس شروع ولی ورودی دوم ایندکس پایانی هست و خروجی یک رشته که از ایندکس که به عنوان ورودی اول دادیم شروع و تا ایندکس پایانی ادامه داره:)(بله! کارکتر با ایندکس پایانی در رشته نیست)
یه تفاوت دیگه بین substr و substring اینه که ما در substring برخلاف متود substr نمیتونیم ایندکس منفی بدیم و اگر ایندکس منفی بدیم جاوااسکریپ اون مقدار منفی با صفر جایگزین میکنه.
شاید حالا احساس کنید که هیچ تفاوتی بین تابع slice (تابع slice برای رشته ها هم بکار میره) و substring وجود نداره و دو تابع دارند یه کارو انجام میدن! اما خوبه که بدونید در موارد زیر باهم متفاوتند:
1) در تابع substring اگر ورودی اول بزرگتر از ورودی اول باشه (یعنی ایندکس شروع بزرگتر از ایندکس پایانی باشه!) جاوا اسکریپت جای این دوتا ورودی عوض میکنه اما در تابع slice در چنین شرایطی به ما یک رشته خالی یا همون "" برمیگردونه!
2) یه تفاوت دیگه عملکرد متفاوت این دوتابع با ورودی های منفیه، همین طور که گفتیم اگه به تابع substring ورودی منفی بدیم، مقدارش با صفر جایگزین میشه اما عملکرد تابع slice همانند substr هست و ورودی منفی نشون دهنده اینه که شمارش ما از انتها رشته اغاز شده است.
خوب امیدورام دیگه تفاوت بین اینارو متوجه شده باشید و دراخر اگه دوست دارید راجب موضوع خاصی بنویسیم لطفا تو کامنت ها برامون بگید، و همچنین معرفی ما به دوستاتون میتونه بهمون خیلی کمک کنه تا تیم هپی لرن رو بزرگتر کنیم.
مطلبی دیگر از این انتشارات
تفاوت بین Asynchronous و Multi-Threading
مطلبی دیگر از این انتشارات
خلق پرسونا در 7 قدم ساده
مطلبی دیگر از این انتشارات
استفاده از pacman در آرچ لینوکس و manjaro