Ich habe eine Funktion, die den Vertragsstatus nicht liest oder ändert:
contract C {
function add(uint a, uint b) public returns (uint) {
uint res = a + b;
return res;
}
}
Ist es sinnvoll, den Modifikator pure/view zu verwenden? Ich meine, verbraucht die Funktion danach weniger Gas oder was ist der Grund dafür?
Wenn du deine Funktion machen kannst pure
, solltest du es immer machen pure
. Ansonsten, wenn Sie Ihre Funktion machen können view
, sollten Sie es immer machen view
.
Vorteile:
Wenn Sie Ihre Funktion pure
oder view
ausführen, können Sie sie beispielsweise über web3.js aufrufen, ohne dass eine Transaktion erforderlich ist, ohne Gaskosten und ohne Bestätigungsverzögerung.
Derzeit werden die Gaskosten bei der Ausführung auf dem EVM nicht gesenkt. In Zukunft kann es jedoch dem Solidity-Compiler helfen, Ihr Programm zu optimieren.
Es verhindert, dass Sie versehentlich den Vertragsstatus in Funktionen lesen oder schreiben, in denen Sie dies nicht möchten.
Nachteile:
(keiner)
Badr Bellaj