متغیرهای سراسری (Global Variables)
«متغیر سراسری (Global Variable)» بیرون از «تابع (Function)» ساخته می شود. بنابراین همه جا دیده می شود؛ داخل تابع و بیرون آن. اما «متغیر محلی (Local Variable)» فقط داخل همان تابع کار می کند.
تعریف ساده متغیر سراسری
اگر متغیر بیرون تابع بسازی، داخل تابع هم قابل استفاده است. مثل دفتر مشترک کلاس که همه می بینند.
نمونه: استفاده از متغیر سراسری در تابع
txt <- "awesome"
my_function <- function() {
paste("R is", txt)
}
my_function()
تداخل نام: محلی در برابر سراسری
اگر داخل تابع، هم نام بسازی، آن متغیر محلی می شود. پس مقدار سراسری بیرون تغییر نمی کند.
نمونه: محلی سازی با نام یکسان
txt <- "global variable"
my_function <- function() {
txt <- "fantastic"
paste("R is", txt)
}
my_function()
txt
نکته: چاپ بیرون تابع هنوز مقدار سراسری را نشان می دهد.
عملگر انتساب سراسری (<<-)
گاهی می خواهی داخل تابع، متغیر سراسری بسازی یا تغییر دهی. برای این کار از «عملگر <<-» استفاده کن.
نمونه: ساخت متغیر سراسری داخل تابع
my_function <- function() {
txt <<- "fantastic"
paste("R is", txt)
}
my_function()
print(txt)
نمونه: تغییر متغیر سراسری موجود
txt <- "awesome"
my_function <- function() {
txt <<- "fantastic"
paste("R is", txt)
}
my_function()
paste("R is", txt)
هشدار: استفاده زیاد از <<- کد را گیج کننده می کند. بهتر است مقدار را «برگردانی (Return)» و بیرون ذخیره کنی.
گام های تمرینی
- یک متغیر سراسری ساده بساز.
- تابعی بنویس و آن را چاپ کن.
- هم نام محلی بساز و تفاوت را ببین.
- با <<- مقدار سراسری را تغییر بده.
- پس از تابع، مقدار سراسری را چاپ کن.
ادامه مطالعه
برای درک بهتر، به تابع ها سر بزن. همچنین بازگشت نمونه های جالبی دارد. برای کار با داده ها هم ساختارهای داده را ببین. اگر نیاز داشتی، همین صفحه متغیرهای سراسری را نشانه گذاری کن.
جمع بندی سریع
- سراسری همه جا دیده می شود.
- محلی فقط داخل تابع است.
- <<- داخل تابع، سراسری را می سازد یا عوض می کند.
- زیاده روی در <<- کد را مبهم می کند.