2
在Ruby中,有沒有辦法從對象的'.inspect'輸出中恢復對象?Ruby:從.inspect輸出中恢復對象
用例可能是:我在生產日誌中輸入了'.inspect'輸出,我希望能夠恢復該對象進行測試,因爲該對象很難在生產環境之外創建。
在Ruby中,有沒有辦法從對象的'.inspect'輸出中恢復對象?Ruby:從.inspect輸出中恢復對象
用例可能是:我在生產日誌中輸入了'.inspect'輸出,我希望能夠恢復該對象進行測試,因爲該對象很難在生產環境之外創建。
你可能想看看Marshal module。但請知道,您不能只從生產日誌中的條目中'還原'對象...
編組庫將Ruby對象的集合轉換爲字節流,從而允許它們存儲在當前活動腳本之外。隨後可以讀取該數據並重建原始對象。
感謝您的意見,非常感謝。 – gifkins
你不能那樣做。類的'inspect'輸出,就像'to_s'輸出一樣,是開發者定義的。對於一個簡單的類來說,它可能是所有實例變量,其中包含表示實例變量名稱的東西。對於一個有很多變量的大對象來說,它可能是一個非常有用的區分輸出,用來區分一個實例和另一個實例。這隻取決於開發人員。你可以重寫'inspect' /'to_s'方法來代表更多的代碼,但是我建議增加序列化JSON的能力或者使用Marshall。 –
謝謝@theTinMan徵求意見 – gifkins