Solidity

關於通過建構子與 setter 函式設置變數的意見?

  • March 16, 2021

目前在網上沒有找到任何關於這個的意見,所以在這裡徵求意見。

在 Solidity 合約的建構子中設置變數與沒有建構子並稍後通過 setter 方法設置這些變數的優缺點是什麼?

是否存在重大的天然氣權衡?這只是風格/意見的問題嗎?

欣賞任何想法:)

我認為這個問題本質上太籠統了,所以唯一可能的答案是“視情況而定”。

建構契約的正確方式取決於契約應該做什麼。部署是合約生命週期中的一個特定步驟。在那個階段需要發生什麼?

例如,讓合約實例處於未配置狀態可能是不可接受的。如果是這樣,那麼在建構子中執行它,這樣每個人都可以確定這種情況是不可能的。

無法在建構子中初始化使用代理系統的可升級合約。在這種情況下,選擇是明確的。

在實踐中,我會說每個參數都需要單獨查看。它應該由建構子設置嗎?它應該是可修改的嗎?它應該是不可變的嗎?

如果某些東西不應該被修改,實際上用建構子編碼會更容易 - 否則你必須制定邏輯以確保它不會發生兩次。你也可以用它immutable來節省汽油。

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/94752