✍️ حالا میخوایم تصمیم بگیریم کدام مقدار باید از یک بلوک بیرون بیاد. وقتی نتیجه نهایی را بیرون شرط برمیگردونی، متغیر نتیجه هم باید همانجا تعریف شده باشه. داخل شرط، انتساب به آن متغیر کافی است؛ تعریف دوباره با let یک نتیجه جدا میسازه که بعد از پایان شرط از دسترس خارج میشه.
مثلاً برای افزودن هزینه بستهبندی، میتونیم let result = price داشته باشیم و فقط وقتی بستهبندی لازم است، بنویسیم result = price + 10. اگر در همان شرط let result تعریف کنیم، خروجی تابع همچنان قیمت اولیه میمونه. این خطا معمولاً خطای اجرایی نمیده و به همین دلیل باید با مثال دارای هزینه بررسی بشه.
در این تمرین، نرخ مالیات به شکل اعشاری داده میشه؛ نرخ 0.1 یعنی ده درصد. نرخ صفر هم معتبره و مبلغ را تغییر نمیده. ورودیها از قبل معتبرند و گرد کردن لازم نیست. برای بررسی دستی، مالیات را جدا حساب کن و بعد با مبلغ جمع کن؛ ضرب صرف در نرخ، فقط خود مالیات را میده.
فعالیت شما
totalWithTax(amount, rate) را بنویس. amount و rate عدد متناهی نامنفیاند. amount + amount * rate را بدون گرد کردن برگردان؛ (100,0.1) برابر 110 است، نرخ صفر مبلغ را نگه میدارد و مبلغ صفر خروجی صفر دارد.