متغیر ها در زبان روبی – Ruby Variables

منتشر شده در 07 فوریه 2023 آخرین به روز رسانی در 15 ژوئن 2024
مهندس محسن حسن پور
1035 0
انواع متغیر روبی

این پست با مسیر متخصص Ruby مرتبط است. مشاهده مسیر (Roadmap)

سلام به همه ی تاتژنی های عزیز. امروز قصد داری از سری آموزش های برنامه نویسی به سراغ یکی از زبان های جذاب بک اند یعنی زبان روبی برویم. اگر شما هم مانند من به زبان Ruby علاقه مندید این آموزش را تا انتها دنبال کنید تا با نحوه ی ایجاد متغیر ها در زبان روبی آشنا شوید.
زبان روبی یکی از زبان هایی است که قدمتی نسبتا طولانی دارد. معمولا از زبان روبی برای بک اند یک سایت استفاده می کنند. از فریم ورک های محبوب این زبان می توان به Ruby on rails اشاره نمود که اخیرا نیز طرفداران زیادی پیدا کرده است.

متغیر ها در زبان روبی

در زبان روبی مجموعا 4 متغیر وجود دارد. که عبارت است از :

متغیر های محلی یا local variable

متغیر هایی هستند که بصورت محلی تعریف می شوند. قاعده ی اسکوپ در php را به یاد دارید؟ اگر با php کار کرده باشید قاعده ای بود بعنوان قاعده اسکوپ! که در آن متغیر های محلی اگر درون یک function  یا تابع معرفی شوند تنها داخل همان تابع قابل دسترسی خواهند بود. در روبی نیز اوضاع به همین منوال است. متغیر های محلی اگر داخل یک فایل معرفی شوند تنها در همان فایل در دسترس هستند و اگر در داخل یک تابع معرفی گردند تنها درون همان تابع می توان از آنها استفاده نمود.

بر خلاف زبان جاوا اسکریپ که از کلمه ی کلیدی let یا var برای تعریف متغیر استفاده می شود و همینطور زبان php که از $ برای تعریف متغیر استفاده می شود، در زبان روبی هیچ کلمه ی کلیدی ای برای معرفی یک متغیر محلی وجود ندارد!
تنها شرایطی که باید رعایت شود آن است که یک local variable یا داده محلی میبایست با حرف کوچک یا _ (آندرلاین) شروع شود.

در مثال زیر ما دو متغیر محلی ایجاد کردیم:

x = 2
name = 'mohsen'
_serial = '24013564'

متغیر های نمونه ساز یا Instance variales

این نوع متغیر با علامت @ در ابتدای آنها ایجاد می شوند. متغیر های instance در واقع متغیر هایی هستند که در یک object تعریف می گردند و کارکرد آنها درون توابع نمونه ساز یا initialize درون یک کلاس است. برای نمونه:

class Person

 def initialize(first, middle, last)

   # Instance Variables
   @first_name = first
   @middle_name = middle
   @last_name = last

 end

 # Displaying result
 def display_full_name()
   puts "Full name:  #@first_name #@middle_name #@last_name"
 end
end

# Create Objects
person1 = Person.new("Mohammad", "Reza", "Sharifinia")


# Call Methods
person1.display_full_name()

# Output: Full name: Mohammad Reza Sharifinia

متغیر کلاس یا Class Variable

متغیر هایی که درون یک کلاس تعریف می کنیم را با دو @@ ایجاد میکنیم. اگر بخواهیم مثال قبل را توسعه بدهیم می توان نوشت:

class Person

 # Class variable
 @@number_of_people = 0

 def initialize(first, middle, last)
  @first_name = first
  @middle_name = middle
  @last_name = last

 end

 # displaying result
 def display_full_name()
  puts "Full name:  #@first_name #@middle_name #@last_name"
 end

 def total_no_of_people()
   # class variable
   @@number_of_people += 1
   puts "Total number of people: #@@number_of_people"
 end
end

# Create Objects
person1 = Person.new("Mohammad", "Reza", "Sharifinia")
person2 = Person.new("Ali", "Reza", "Ghorbani")

# Call Methods
person1.display_full_name()
person1.total_no_of_people()
person2.display_full_name()
person2.total_no_of_people()

# Output: Full name: Mohammad Reza Sharifinia
# Output: Total number of people: 1
# Output: Full name: Ali Reza Ghorbani
# Output: Total number of people: 2

متغیر های گلوبال یا سراسری Global Variables

نقطه ی مقابل متغیر های محلی هستند. یعنی با تعریف این متغیر ها در تمام برنامه (چه خارج از تابع چه داخل تابع) دسترسی خواهیم داشت. مثال:

# Global variable
$global_variable_starting_score = 0

class Class1
 def print_global_starting_score
   # Access global variable
   puts "The starting score in Class1 is #$global_variable_starting_score"
 end
end

class Class2
 def print_global_starting_score
   # Access global variable
   puts "The starting score in Class2 is #$global_variable_starting_score"
 end
end

class1obj = Class1.new
class1obj.print_global_starting_score
class2obj = Class2.new
class2obj.print_global_starting_score

امیدواریم که از این آموزش استفاده لازم را ببرید. شما می توانید از بخش نظرات، انتقادات و پیشنهادات خود را برای ما ارسال کنید. نظر شما در مورد آموزش های روبی چیست؟