Ruby의 변수
5456 단어 rubycodenewbiebeginners
Duping and Freezing Objects
변수란 무엇입니까?
메모리 위치에 대한 포인터입니다. 참조. 따라서 우리가 그것을 할당할 때, 그것은 실제로 그 객체가 저장된 메모리의 주소를 보유할 것입니다.
예를 들어:
address_holder = 'I am a String obj'
second_address_holder = address_holder
puts address_holder.object_id == second_address_holder.object_id #=> true
내 문자열 객체를 변경하면 두 변수가 동일하게 표시되어야 합니다.
pointer_to_location.upcase!
puts address_holder #=> I AM A STRING OBJ
puts second_address_holder #=> I AM A STRING OBJ
참조는 객체와 다대일 관계를 가집니다.
즉각적인 값
그 행동이 항상 옳은 것은 아닙니다. Ruby의 일부 개체는
integers
, symbols
, true
, false
및 nill
와 같이 변수에 즉각적인 값으로 저장됩니다.Any object that is represented as an immediate value is always exactly the same object, no matter how many variables it is assigned to. There is only one object
100
, only one objectfalse
, and so on1.
변수를 재할당하면 이제 다른 위치를 가리킵니다. 예를 들어:
a = 'first location'
b = a
puts a.object_id #=> 720
puts b.object_id #=> 720
a = 'second location'
puts a.object_id #=> 740
puts b.object_id #=> 720
이 경우 변수
b
는 여전히 가리키는 메모리 주소a
를 가리키고 있습니다. 변수a
가 이제 새 위치를 가리키고 있습니다.❗️ Ruby는 유형이 지정된 변수 언어가 아닙니다. 즉, 지금 문자열을 변수에 할당할 수 있고 나중에 문제 없이 정수를 할당할 수 있습니다.
개체 복제 및 고정
개체가 변경되지 않도록 보호하기 위해 사용할 수 있는 세 가지 방법이 있습니다.
freeze
추가 변경을 방지합니다.dup
는 개체를 복제합니다. 고정된 개체를 복제하면 복제된 개체는 고정되지 않습니다.clone
dup과 비슷하지만 고정된 개체를 복제하면 복제본도 고정됩니다.참고: 배열을 고정하면 배열의 요소가 아니라 배열 자체가 고정됩니다.
변수의 종류
Constants
Ruby에서 이러한 변수를 변경할 수 있지만 변경할 필요가 없거나 변경해서는 안 되는 변수에 사용됩니다.MY_CONSTANT = 'I should not be changed through the application'
Global variables
전체 애플리케이션을 통해 액세스할 수 있으며 필요하지 않은 경우 사용하지 않는 것이 좋습니다.$global_variable = 'try avoiding me'
Class variables
전체 클래스와 클래스의 인스턴스를 통해 액세스할 수 있습니다.@@class_variable = 'I can be modified inside my class or its instances.'
Instance variables
상위 클래스의 인스턴스 내에서만 사용할 수 있습니다.@instance_variable = 'I don't follow strictly the scope rules.'
local variables
가장 흔한 것.local_variable = ''
참조
데이비드 A. 블랙과 조셉 레오 3세. 2019. 기초가 탄탄한 루비스트. 3판. ↩
Reference
이 문제에 관하여(Ruby의 변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andressa/variables-in-ruby-3799텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)