Ruby의 변수

빠른 색인
  • What are variables?

  • Duping and Freezing Objects
  • Types of variables

  • 변수란 무엇입니까?



    메모리 위치에 대한 포인터입니다. 참조. 따라서 우리가 그것을 할당할 때, 그것은 실제로 그 객체가 저장된 메모리의 주소를 보유할 것입니다.

    예를 들어:

    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 , falsenill 와 같이 변수에 즉각적인 값으로 저장됩니다.

    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 object false, 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 = ''
    



    참조


  • Variables
  • The Well-Grounded Rubyist




  • 데이비드 A. 블랙과 조셉 레오 3세. 2019. 기초가 탄탄한 루비스트. 3판.

    좋은 웹페이지 즐겨찾기