2016-04-12 106 views
-2

我的下一個高清:如何防止功能被修改?

def get_smth 
    return @mySmth 
end 

如何做,應該有沒有辦法修改通過它,或通過它返回的對象的內容?

我想過getter和setters,但它是一種解決方案嗎?

+0

你的問題有點不清楚。試試如果這有助於'@ mySmth.freeze'。 [LINK](http://apidock.com/rails/v1.0.0/ActiveRecord/Base/freeze)。另外檢查[這鏈接](http://apidock.com/rails/ActiveRecord/Base/readonly%3F) – Abhi

+0

@Abhi不,它不會幫助=/ –

回答

1

沒有辦法通過它

修改的內容不要修改它的內容。

沒有辦法通過對象修改內容返回

不要返回一個對象所有,或返回一個對象的深層副本。由@mySmth.dup/@mySmth.clone返回的淺拷貝可能不足以用於深度嵌套對象。

+0

сlone的作品!謝謝! –