Ruby에서 Freeze 메서드 사용

Hassan Ejaz 2024년2월15일
Ruby에서 Freeze 메서드 사용

이 기사에서는 Ruby의 객체에 freeze 메소드를 사용하는 방법을 소개합니다.

Ruby에서 freeze 방법 사용

객체를 더 이상 변경하고 싶지 않고 수정할 수 없도록 하고 싶을 때 Ruby에서 freeze 방법을 사용할 수 있습니다. 이 방법을 사용하여 변경할 수 없는 개체를 빠르게 생성할 수 있습니다.

freeze 방법이 적용된 개체를 변경하려고 하면 프로그램에 오류가 표시됩니다. 어레이와 함께 freeze 방법을 사용한 경우는 다음과 같습니다.

# Ruby

fruits = ["orange","banana","strawberry"]

fruits.freeze

fruits <<"watermelon"

이 코드를 실행하려고 하면 오류가 발생합니다. 문자열의 경우 freeze 방법의 사용법은 다음과 같습니다.

# Ruby

str = "Hey"

str.freeze

str <<" How are you?"

런타임 오류도 표시됩니다. 객체의 경우 freeze 방법의 사용법은 아래와 같습니다.

# Ruby

class Fruits
    def initialize(name)
        @name = name
    end

    def get_name
        return @name
    end

    def set_name(name)
        @name = name
    end
end

a = Fruits.new("apple")

a.freeze
a.set_name("melon")
puts a.get_name

출력:

Ruby의 동결 방법

위의 예에서 freeze 방법으로 이미 고정된 객체를 변경하려고 했기 때문에 오류가 발생했습니다.

Ruby의 freeze 방법의 한계

freeze 방법에는 몇 가지 제한 사항이 있습니다. 고정된 개체와 관련된 변수를 수정할 수 있음을 이해하는 것이 중요합니다.

이 방법을 사용하여 개체만 고정했기 때문입니다. 해당 개체와 관련된 변수는 자유롭게 변경할 수 있습니다.

다음은 동일한 변수에 액세스하여 고정된 개체를 새 것으로 변경하는 방법을 보여주는 예입니다.

# Ruby

str = "Hey James"
str.freeze

str = "Hey Petr"

puts str

출력:

Ruby의 동결 방법의 한계

freeze 방법을 사용하여 객체가 변경 불가능한지 확인할 수 있습니다.

# Ruby

str2 = "Hey Julia"

str2.freeze

str4 = "Julia is very nice"

num = 120.5

num.freeze

관련 문장 - Ruby Method