루비 변수 깊이 분석
Ruby는 다섯 가지 유형의 변수를 지원합니다.
전역 변수는 $로 시작합니다.초기화되지 않은 전역 변수의 값은nil입니다. - 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으로 출력됩니다.
참고: 루비에서는 변수나 상수 앞에 # 문자를 배치하여 변수나 상수 값에 액세스할 수 있습니다.
루비 인스턴스 변수
인스턴스 변수는 @로 시작합니다.초기화되지 않은 실례 변수의 값은nil입니다. - w 옵션을 사용하면 경고가 발생합니다.
다음 인스턴스는 인스턴스 변수의 사용법을 보여 줍니다.
#!/usr/bin/ruby
class Customer
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
end
#
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, 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는 클래스 변수입니다.그러면 다음과 같은 결과가 발생합니다.Total number of customers: 1
Total number of customers: 2
루비 로컬 변수
로컬 변수는 소문자 또는 밑줄로 _시작.국부 변수의 작용역은class,module,def 또는do에서 상응하는 끝이나 왼쪽 괄호에서 오른쪽 괄호로 {}입니다.
초기화되지 않은 국부 변수를 호출할 때, 매개 변수가 없는 방법으로 해석됩니다.
초기화되지 않은 국부 변수에 대한 값도 변수 성명으로 간주할 수 있습니다.변수는 현재 도메인이 끝날 때까지 계속 존재합니다.로컬 변수의 라이프 사이클은 Ruby 해석 프로그램에서 결정됩니다.
위의 실례에서 국부 변수는 id,name,addr입니다.
루비 상수
상량은 대문자로 시작한다.클래스나 모듈 내에 정의된 상수는 클래스나 모듈의 내부에서 접근할 수 있고, 클래스나 모듈 밖에 정의된 상수는 전역적으로 접근할 수 있다.
상수는 방법 내에 정의할 수 없다.초기화되지 않은 상수를 인용하면 오류가 발생합니다.초기화된 상수 값에 경고가 발생합니다.
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
class Example
VAR1 = 100
VAR2 = 200
def show
puts " #{VAR1}"
puts " #{VAR2}"
end
end
#
object=Example.new()
object.show
여기서 VAR1과 VAR2는 상수입니다.그러면 다음과 같은 결과가 발생합니다.첫 번째 상수의 값은 100이다
두 번째 상수의 값은 200이다
루비 위조 변수
그것들은 특수한 변수로 국부 변수의 외관을 가지고 있지만 행위는 상량과 같다.이 변수에 어떤 값도 부여할 수 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby에서 문자열을 고정하는 다른 방법Ruby에서 문자열을 고정하려면 최소한 두 가지 방법이 있습니다. 아시다시피 a와 b는 동일한 개체 인스턴스인 것 같습니다. 문자열에 적용할 수 있는 일종의 이상한 메서드 입력: - 다음과 같은 코드를 볼 수 있습니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.