Latest web development tutorials

Ruby-Variablen

Variable hält beliebige Daten gespeichert von jedem Programm verwendet werden.

Rubin unterstützt fünf Arten von Variablen.

  • Generell Kleinbuchstaben, mit einem Unterstrich beginnen: Variable (Variable).
  • $ Zu Beginn: eine globale Variable (Global Variable).
  • @ Der Anfang: die Instanzvariablen (Instanzvariablen).
  • @@ Beginn: Klassenvariable (Klasse variabel) Klassenvariablen sind über die Vererbungskette geteilt
  • Beginnen Sie mit einem Großbuchstaben: Konstant (Constant).

Sie haben in den vorangegangenen Kapiteln über diese Variablen zu verstehen, dieses Kapitel Sie eine detaillierte Erklärung dieser fünf Arten von Variablen zur Verfügung stellt.

Rubin globale Variable

Globale Variablen beginnen mit $. Uninitialized globale Variable istgleich Null,in der Option -w, wird eine Warnung erzeugt.

Um die globale wird variable Zuordnung globalen Zustand zu ändern, so empfehlen wir die Verwendung von globalen Variablen.

Das folgende Beispiel zeigt die Verwendung von globalen Variablen.

#!/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

Hier ist $ global_variable eine globale Variable. Daraus ergeben sich die folgenden Ergebnisse:

Hinweis: In Ruby können Sie das Zeichen # vor einer variablen oder konstanten Ort, zu jeder variablen oder konstanten Wert zuzugreifen.

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

Ruby-Instanzvariablen

@ Instanz Variable zu beginnen. Nicht initialisierte Instanz - Variable istgleich Null,in der Option -w, wird eine Warnung erzeugt.

Das folgende Beispiel zeigt die Verwendung von Instanzvariablen.

#! / Usr / bin / ruby

Klasse Kunden
   def initialisieren (id, name, adr)
      @ Cust_id = id
      @ Cust_name = name
      @ Cust_addr = adr
   Ende
   def display_details ()
      puts "Kunden-ID # @ cust_id"
      puts "Kundenname # @ cust_name"
      puts "# @ cust_addr Kundenadresse"
    Ende
Ende

# Erstellen Objekt cust1 = Customer.new ( "1", "John", "Weisheit Apartments, Ludhiya")
Cust2 = Customer.new ( "2", "Poul", "New Empire Straße, Khandala")

# Aufruf der Methode cust1.display_details ()
cust2.display_details ()

Hier @ cust_id, @ cust_name und @cust_addr ist eine Instanzvariable. Daraus ergeben sich die folgenden Ergebnisse:

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

Ruby-Klasse Variablen

Am Anfang von @@ Klassenvariablen und müssen initialisiert werden, bevor Sie später in der Methodendefinition verwenden können.

Das Bezugs eine nicht initialisierte Variable Klasse wird ein Fehler generiert. Klassenvariablen in der Klasse oder Unterklasse von Modulen oder Untermodulen gemeinsam genutzt werden können definiert.

Nach der -w Option, Variablen Klasse Überlastung eine Warnung erzeugen.

Das folgende Beispiel zeigt die Verwendung von Klassenvariablen.

#!/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()

Hier @@ no_of_customers ist eine Klassenvariable. Daraus ergeben sich die folgenden Ergebnisse:

Gesamtzahl der Kunden: 1
Gesamtzahl der Kunden: 2

Ruby-lokale Variablen

Lokale Variablen beginnen mit einem Kleinbuchstaben oder einem Unterstrich _. Der Umfang der lokalen Variablen aus der Klasse, Modul, def oder tun das entsprechende Ende der Stütze auf die linke oder rechte geschweifte Klammern {}.

Wenn Sie eine nicht initialisierte lokale Variable nennen, wird es als Aufruf einer Methode ohne Parameter interpretiert.

Uninitialized lokale Variable Zuordnung kann auch als Variablendeklaration verwendet werden. Variable wird bis zum Ende der aktuellen Domäne existieren bisher. Lifecycle lokale Variablen im Ruby-Parser bestimmt.

In dem obigen Beispiel ist die lokale Variable die ID, Name und Adr.

Ruby-Konstanten

Konstante mit einem Großbuchstaben. Definieren Sie Konstanten in der Klasse oder dem Modul kann aus der Klasse oder des Moduls zugegriffen werden kann, außerhalb einer Klasse oder eines Moduls definiert Konstanten können global zugegriffen werden.

Konstanten können nicht innerhalb der Methode definiert werden. Referenz eine nicht initialisierte Konstante Fehler auftritt. Bereits initialisiert konstanten Werten wird eine Warnung ausgegeben.

#! / Usr / bin / ruby
# - * - Codierung: UTF-8 - * -

Klasse Beispiel
   VAR1 = 100
   VAR2 = 200
   def Show
       setzt "Die erste Konstante ist # {} VAR1"
       setzt "Die zweite Konstante ist # {} VAR2"
   Ende
Ende

# Erstellen Object-Objekt = Example.new ()
object.show

Hier VAR1 und VAR2 Konstanten sind. Daraus ergeben sich die folgenden Ergebnisse:

Der erste konstante Wert von 100
Die zweite Konstante ist 200

Ruby-Pseudo-Variable

Sie sind spezielle Variablen, mit dem Auftreten von lokalen Variablen, sondern verhält sich wie eine Konstante. Sie können keinen Wert auf diese Variablen zuweisen.

  • Selbst: Empfängerobjekte der aktuellen Methode.
  • wahr: Der Vertreter des wahren Wertes.
  • false: Der Wert stellt falsch.
  • nil: Repräsentative nicht definierten Wert.
  • __FILE__: Der aktuelle Name der Quelldatei.
  • __LINE__: Aktuelle Quelldatei Zeilennummer.