Latest web development tutorials

переменные в Ruby

Переменная проводит какие-либо данные могут быть использованы любой программой, хранящейся.

Рубин поддерживает пять типов переменных.

  • Как правило, строчные буквы, начинающиеся с символа подчеркивания: Переменная (переменная).
  • $ В начале: глобальная переменная (глобальная переменная).
  • @ Начало: переменные экземпляра (переменная экземпляра).
  • @@ Начало: переменная класса (переменная класса) Переменные класса являются общими по всей цепочке наследования
  • Начните с большой буквы: Constant (постоянная).

У вас есть в предыдущих главах о понимании этих переменных, эта глава предоставит вам подробное объяснение этих пяти типов переменных.

глобальная переменная Рубин

Глобальные переменные начинаются с $. Неинициализированная глобальная переменная равнанулю,в опции -w, генерируется предупреждение.

Для того, чтобы глобальная переменная присваивания изменит глобальное состояние, поэтому мы не рекомендуем использовать глобальные переменные.

В следующем примере показано использование глобальных переменных.

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$global_variable = 10
class Class1
  def print_global
      puts "全局变量在 Class1 中输出为 #$global_variable"
  end
end
class Class2
  def print_global
      puts "全局变量在 Class2 中输出为 #$global_variable"
  end
end

class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global

Здесь $ global_variable является глобальной переменной. Это дает следующие результаты:

Примечание: В Ruby, вы можете поместить символ # перед переменной или константы, чтобы получить доступ к любой переменной или постоянное значение.

全局变量在 Class1 中输出为 10
全局变量在 Class2 中输出为 10

переменные экземпляра в Ruby

@ Переменная экземпляра, чтобы начать с. Неинициализированная переменная экземпляра равнанулю,в опции -w, генерируется предупреждение.

В следующем примере показано использование переменных экземпляра.

#! / Usr / бен / рубин

класс клиента
   Защиту инициализации (ID, имя, адр)
      @ Cust_id = идентификатор
      @ CUST_NAME = имя
      @ Cust_addr = адр
   конец
   Защиту display_details ()
      путы "Идентификатор клиента # @ cust_id"
      ставит "Имя клиента # @ CUST_NAME"
      путы "адрес клиента # @ cust_addr"
    конец
конец

# Создание cust1 Object = Customer.new ( "1", "Джон", "Мудрость Квартиры, Ludhiya")
cust2 = Customer.new ( "2", "Poul", "Новая Империя дорога, Кхандала")

# вызов метода cust1.display_details ()
cust2.display_details ()

Здесь @ cust_id, @ CUST_NAME и @cust_addr является переменной экземпляра. Это дает следующие результаты:

Customer id 1
Customer name John
Customer address Wisdom Apartments, Ludhiya
Customer id 2
Customer name Poul
Customer address New Empire road, Khandala

переменные класса в Ruby

В начале @@ переменных класса и должен быть инициализирован прежде чем можно будет использовать позже в определении метода.

Ссылка неинициализированный переменной класса будет генерировать ошибку. Переменные класса, определенные в классе или подкласса модулей или суб-модулей могут быть разделены.

После того, как с помощью опции -w, перегрузки переменных класса будет производить предупреждение.

В следующем примере показано использование переменных класса.

#!/usr/bin/ruby

class Customer
   @@no_of_customers=0
   def initialize(id, name, addr)
      @cust_id=id
      @cust_name=name
      @cust_addr=addr
   end
   def display_details()
      puts "Customer id #@cust_id"
      puts "Customer name #@cust_name"
      puts "Customer address #@cust_addr"
    end
    def total_no_of_customers()
       @@no_of_customers += 1
       puts "Total number of customers: #@@no_of_customers"
    end
end

# 创建对象
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

# 调用方法
cust1.total_no_of_customers()
cust2.total_no_of_customers()

Здесь @@ no_of_customers является переменной класса. Это дает следующие результаты:

Общее количество клиентов: 1
Общее количество клиентов: 2

Рубин локальные переменные

Локальные переменные начинаются со строчной буквы или символа подчеркивания _. Объем локальных переменных из класса, модуля, DEF или сделать соответствующий конец распорки к левой или правой фигурные скобки {}.

При вызове неинициализированный локальную переменную, он интерпретируется как вызов метода без параметров.

Неинициализированная локальная переменная назначение также может быть использован в качестве объявления переменной. Переменная будет существовать до конца текущего домена до сих пор. Жизненный цикл локальные переменные определены на Ruby-парсер.

В приведенном выше примере, локальная переменная является идентификатором, имя и адр.

Рубин константы

Константа с заглавной буквы. Определение константы внутри класса или модуля можно получить из класса или модуля, определенные за пределами константы класса или модуля могут быть доступны во всем мире.

Константы не могут быть определены в рамках метода. Ссылка происходит неинициализированная постоянная ошибка. Уже инициализированы постоянные значения будут генерировать предупреждения.

#! / Usr / бен / рубин
# - * - Кодировка: UTF-8 - * -

Пример класса
   VAR1 = 100
   VAR2 = 200
   защиту шоу
       ставит "Первая константа # {VAR1}"
       ставит "Вторая константа # {VAR2}"
   конец
конец

# Создание объекта Object = Example.new ()
object.show

Здесь VAR1 и VAR2 постоянные. Это дает следующие результаты:

Первое постоянное значение 100
Вторая константа 200

Рубин псевдопеременная

Они являются специальными переменными, с появлением локальных переменных, но действует как постоянная. Вы не можете присвоить любое значение этих переменных.

  • самоуправления: приемные объекты текущего метода.
  • правда: представитель истинного значения.
  • ложь: Значение представляет ложь.
  • ноль: Представитель неопределенное значение.
  • __FILE__: Текущее имя исходного файла.
  • __LINE__: Текущий исходный файл номер строки.