Latest web development tutorials

루비 변수

변수는 데이터가 저장된 프로그램을 사용할 수 있습니다 잡고있다.

루비는 변수의 다섯 가지 유형을 지원합니다.

  • 변수 (변수) : 밑줄로 시작 일반적으로 소문자.
  • $ 시작시 : 전역 변수 (글로벌 변수).
  • @ 시작 부분 : 인스턴스 변수 (인스턴스 변수).
  • @@ 시작 : 클래스 변수 (클래스 변수) 클래스 변수는 상속 체인을 통해 공유
  • 대문자로 시작 상수 (상수).

이러한 변수를 이해에 대한 이전 장에서,이 장 당신에게 변수의 이러한 다섯 가지 유형에 대한 자세한 설명을 제공합니다.

루비 전역 변수

글로벌 변수는 $로 시작합니다. 초기화되지 않은 전역 변수는 -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는 전역 변수이다. 이것은 다음과 같은 결과를

참고 : 루비에서는 어떤 변수 나 상수 값에 액세스 할 변수 나 상수의 앞에 # 문자를 배치 할 수 있습니다.

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

루비의 인스턴스 변수

@ 인스턴스 변수와 함께 시작합니다. 초기화되지 않은 인스턴스 변수는 -w 옵션에서 경고가생성됩니다 전무하다.

다음의 예는 인스턴스 변수의 사용을 도시한다.

#!를 / usr / 빈 / 루비

클래스 고객
   데프 초기화 (ID, 이름, 요지)
      @ CUST_ID = 아이디
      @ CUST_NAME = 이름
      @ Cust_addr = 요지
   끝
   데프 display_details ()
      풋 "고객 ID 번호의 @의 CUST_ID"
      풋 "고객 이름 #을 @의 CUST_NAME"
      풋 "고객 주소 #를 @의 cust_addr"
    끝
끝

# 개체 cust1 만들기 = Customer.new ( "1", "존", "지혜 아파트, Ludhiya")
cust2 = Customer.new ( "2", "Poul를", "새로운 제국 도로, Khandala")

# 통화 방법 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

루비 클래스 변수

@@ 클래스 변수의 시작 부분에서 당신은 메소드 정의에 나중에 사용하기 전에 초기화해야합니다.

오류가 발생합니다 초기화되지 않은 변수 클래스를 참조. 클래스 또는 모듈 또는 서브 모듈들의 서브 클래스 정의 변수는 공유 될 수있다.

-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

루비 지역 변수

지역 변수는 소문자 또는 밑줄 _로 시작합니다. 클래스, 모듈, 데프에서 지역 변수의 범위 또는 왼쪽 또는 오른쪽 중괄호에 가새의 해당 끝을 {}.

당신이 초기화되지 않은 지역 변수를 호출 할 때 매개 변수없이 메소드를 호출로 해석됩니다.

초기화되지 않은 로컬 변수 할당은 변수 선언로서 사용될 수있다. 가변 지금까지 현재 도메인이 종료 될 때까지 존재한다. 라이프 사이클 지역 변수는 루비 파서에서 결정.

위의 예에서, 로컬 변수는 ID, 이름, ADDR이다.

루비 상수

대문자와 정수입니다. 클래스 또는 모듈 상수가 전 세계적으로 액세스 할 수있는 외부에서 정의 된 클래스 또는 모듈 내에서 액세스 할 수있는 클래스 또는 모듈 내에서 상수를 정의합니다.

상수는 상기 방법에서 정의 될 수 없다. 초기화되지 않은 상수 오류가 발생 참조. 이미 초기화 된 상수 값이 경고를 생성합니다.

#!를 / usr / 빈 / 루비
# - * - 코딩 : UTF-8 - * -

클래스 예
   VAR1 = 100
   VAR2 = 200
   데프 쇼
       두고 "첫 번째 상수는 # {VAR1}입니다"
       두고 "두 번째 상수는 # {VAR2}입니다"
   끝
끝

# 개체 개체를 만듭니다 = Example.new ()
object.show

여기에, VAR1 및 VAR2는 상수이다. 이것은 다음과 같은 결과를

(100)의 제 상수
두 번째 상수는 200

루비 의사 변수

그들은 지역 변수의 모양으로, 특별한 변수가 있지만 일정한 역할을 수행합니다. 이러한 변수에 값을 할당 할 수 없습니다.

  • 자기 : 현재 방식의 수신기 객체.
  • 사실 : 진정한 가치의 대표.
  • 거짓 값은 false를 나타냅니다.
  • 무기 호 : 대표 정의되지 않은 값.
  • __FILE__ : 소스 파일의 현재 이름입니다.
  • __LINE__ : 현재 소스 파일의 행 번호.