최고의 루비 변수 튜토리얼 2024년, 이 튜토리얼에서는 루비 전역 변수,루비의 인스턴스 변수,루비 클래스 변수,루비 지역 변수,루비 상수,루비 의사 변수,를 배울 수 있습니다.
변수는 데이터가 저장된 프로그램을 사용할 수 있습니다 잡고있다.
루비는 변수의 다섯 가지 유형을 지원합니다.
$
시작시 : 전역 변수 (글로벌 변수). @
시작 부분 : 인스턴스 변수 (인스턴스 변수). @@
시작 : 클래스 변수 (클래스 변수) 클래스 변수는 상속 체인을 통해 공유 이러한 변수를 이해에 대한 이전 장에서,이 장 당신에게 변수의 이러한 다섯 가지 유형에 대한 자세한 설명을 제공합니다.
글로벌 변수는 $로 시작합니다. 초기화되지 않은 전역 변수는 -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
그들은 지역 변수의 모양으로, 특별한 변수가 있지만 일정한 역할을 수행합니다. 이러한 변수에 값을 할당 할 수 없습니다.