💡درک تفاوت بین ارسال با مقدار (pass by value) و ارسال با ارجاع (pass by reference)
آیا تا به حال به این فکر کردهاید که دادهها در برنامهنویسی چگونه منتقل میشوند؟ بیایید با دو روش بنیادی در این زمینه آشنا شویم:
➡️ارسال با مقدار (pass by value): در این روش، یک نسخهی کپی (copy) از مقدار متغیر ارسال میشود. یعنی وقتی یک متغیر (variable) را به یک تابع (function) میفرستید، در واقع فقط یک نسخه از مقدار آن را منتقل کردهاید. بنابراین، هر تغییری که داخل تابع انجام شود، روی متغیر اصلی تأثیری ندارد. این روش معمولاً در زبانهایی مانند C و جاوا (Java) برای نوعهای دادهای اولیه (primitive types) استفاده میشود.
➡️ارسال با ارجاع (pass by reference): در این روش، به جای ارسال یک نسخهی کپی، آدرس یا مرجعی (reference) به خود متغیر اصلی ارسال میشود. به همین دلیل، تغییراتی که در تابع (function) انجام میشوند، مستقیماً روی متغیر اصلی تأثیر میگذارند. این روش بیشتر در کار با اشیاء (objects) در زبانهایی مانند جاوا (Java) و پایتون (Python) دیده میشود.
چگونه میتوان مطمئن شد که از روش درست در کد (code) خود استفاده میکنید؟
💡درک تفاوت بین ارسال با مقدار (pass by value) و ارسال با ارجاع (pass by reference)
آیا تا به حال به این فکر کردهاید که دادهها در برنامهنویسی چگونه منتقل میشوند؟ بیایید با دو روش بنیادی در این زمینه آشنا شویم:
➡️ارسال با مقدار (pass by value): در این روش، یک نسخهی کپی (copy) از مقدار متغیر ارسال میشود. یعنی وقتی یک متغیر (variable) را به یک تابع (function) میفرستید، در واقع فقط یک نسخه از مقدار آن را منتقل کردهاید. بنابراین، هر تغییری که داخل تابع انجام شود، روی متغیر اصلی تأثیری ندارد. این روش معمولاً در زبانهایی مانند C و جاوا (Java) برای نوعهای دادهای اولیه (primitive types) استفاده میشود.
➡️ارسال با ارجاع (pass by reference): در این روش، به جای ارسال یک نسخهی کپی، آدرس یا مرجعی (reference) به خود متغیر اصلی ارسال میشود. به همین دلیل، تغییراتی که در تابع (function) انجام میشوند، مستقیماً روی متغیر اصلی تأثیر میگذارند. این روش بیشتر در کار با اشیاء (objects) در زبانهایی مانند جاوا (Java) و پایتون (Python) دیده میشود.
چگونه میتوان مطمئن شد که از روش درست در کد (code) خود استفاده میکنید؟
The S&P 500 slumped 1.8% on Monday and Tuesday, thanks to China Evergrande, the Chinese property company that looks like it is ready to default on its more-than $300 billion in debt. Cries of the next Lehman Brothers—or maybe the next Silverado?—echoed through the canyons of Wall Street as investors prepared for the worst.
Among the actives, Ascendas REIT sank 0.64 percent, while CapitaLand Integrated Commercial Trust plummeted 1.42 percent, City Developments plunged 1.12 percent, Dairy Farm International tumbled 0.86 percent, DBS Group skidded 0.68 percent, Genting Singapore retreated 0.67 percent, Hongkong Land climbed 1.30 percent, Mapletree Commercial Trust lost 0.47 percent, Mapletree Logistics Trust tanked 0.95 percent, Oversea-Chinese Banking Corporation dropped 0.61 percent, SATS rose 0.24 percent, SembCorp Industries shed 0.54 percent, Singapore Airlines surrendered 0.79 percent, Singapore Exchange slid 0.30 percent, Singapore Press Holdings declined 1.03 percent, Singapore Technologies Engineering dipped 0.26 percent, SingTel advanced 0.81 percent, United Overseas Bank fell 0.39 percent, Wilmar International eased 0.24 percent, Yangzijiang Shipbuilding jumped 1.42 percent and Keppel Corp, Thai Beverage, CapitaLand and Comfort DelGro were unchanged.