1
是否有可能標誌着一個實例變量如@var如unassingnable,使得下面的測試將通過?目的是模擬一個只讀變量:紅寶石標記實例變量作爲不可分配
class Test
def initialize(var)
@var = var
@var.freeze
make_unassignable(:@var)
end
def set_var(new_var)
@var = new_var
end
def make_unassignable(symbol)
#insert algorithm here
end
end
test = Test.new('some var')
expect { test.set_var = 'some other var' }.to raise_error
expect { test.instance_variable_set(:@var, 'some other var') }.to raise_error
@Andrey:請刪除重複的標誌。你提出的問題是相似的,但我問的是禁用完全分配變量的能力(不僅僅是通過異常來構建保護)。 – abstractx1
謝謝你解釋。 – abstractx1
請取消接受我的答案,因爲它並沒有回答有關使變量無法分配的問題(這是不可能的,因爲另一個答案正確地指出) –