mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Documentation.
This commit is contained in:
parent
34e7ae6ff9
commit
df16515b52
@ -1,5 +1,7 @@
|
|||||||
.. index:: ! constant
|
.. index:: ! constant
|
||||||
|
|
||||||
|
.. _constants:
|
||||||
|
|
||||||
**************************************
|
**************************************
|
||||||
Constant and Immutable State Variables
|
Constant and Immutable State Variables
|
||||||
**************************************
|
**************************************
|
||||||
@ -9,6 +11,8 @@ In both cases, the variables cannot be modified after the contract has been cons
|
|||||||
For ``constant`` variables, the value has to be fixed at compile-time, while
|
For ``constant`` variables, the value has to be fixed at compile-time, while
|
||||||
for ``immutable``, it can still be assigned at construction time.
|
for ``immutable``, it can still be assigned at construction time.
|
||||||
|
|
||||||
|
It is also possible to define ``constant`` variables at the file level.
|
||||||
|
|
||||||
The compiler does not reserve a storage slot for these variables, and every occurrence is
|
The compiler does not reserve a storage slot for these variables, and every occurrence is
|
||||||
replaced by the respective value.
|
replaced by the respective value.
|
||||||
|
|
||||||
@ -26,10 +30,11 @@ Not all types for constants and immutables are implemented at this time. The onl
|
|||||||
::
|
::
|
||||||
|
|
||||||
// SPDX-License-Identifier: GPL-3.0
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
pragma solidity ^0.7.0;
|
pragma solidity >0.7.2;
|
||||||
|
|
||||||
|
uint constant X = 32**22 + 8;
|
||||||
|
|
||||||
contract C {
|
contract C {
|
||||||
uint constant X = 32**22 + 8;
|
|
||||||
string constant TEXT = "abc";
|
string constant TEXT = "abc";
|
||||||
bytes32 constant MY_HASH = keccak256("abc");
|
bytes32 constant MY_HASH = keccak256("abc");
|
||||||
uint immutable decimals;
|
uint immutable decimals;
|
||||||
|
@ -5,7 +5,8 @@ Layout of a Solidity Source File
|
|||||||
Source files can contain an arbitrary number of
|
Source files can contain an arbitrary number of
|
||||||
:ref:`contract definitions<contract_structure>`, import_ directives,
|
:ref:`contract definitions<contract_structure>`, import_ directives,
|
||||||
:ref:`pragma directives<pragma>` and
|
:ref:`pragma directives<pragma>` and
|
||||||
:ref:`struct<structs>`, :ref:`enum<enums>` and :ref:`function<functions>` definitions.
|
:ref:`struct<structs>`, :ref:`enum<enums>`, :ref:`function<functions>`
|
||||||
|
and :ref:`constant variable<constants>` definitions.
|
||||||
|
|
||||||
.. index:: ! license, spdx
|
.. index:: ! license, spdx
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user