mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Enforces visibility specifier and updates docs.
This commit is contained in:
+7
-8
@@ -131,10 +131,9 @@ a "message call") and external
|
||||
ones that do), there are four types of visibilities for
|
||||
functions and state variables.
|
||||
|
||||
Functions can be specified as being ``external``,
|
||||
``public``, ``internal`` or ``private``, where the default is
|
||||
``public``. For state variables, ``external`` is not possible
|
||||
and the default is ``internal``.
|
||||
Functions have to be specified as being ``external``,
|
||||
``public``, ``internal`` or ``private``.
|
||||
For state variables, ``external`` is not possible.
|
||||
|
||||
``external``:
|
||||
External functions are part of the contract
|
||||
@@ -850,10 +849,10 @@ Details are given in the following example.
|
||||
|
||||
::
|
||||
|
||||
pragma solidity ^0.4.22;
|
||||
pragma solidity >0.4.24;
|
||||
|
||||
contract owned {
|
||||
constructor() { owner = msg.sender; }
|
||||
constructor() public { owner = msg.sender; }
|
||||
address owner;
|
||||
}
|
||||
|
||||
@@ -862,7 +861,7 @@ Details are given in the following example.
|
||||
// internal functions and state variables. These cannot be
|
||||
// accessed externally via `this`, though.
|
||||
contract mortal is owned {
|
||||
function kill() {
|
||||
function kill() public {
|
||||
if (msg.sender == owner) selfdestruct(owner);
|
||||
}
|
||||
}
|
||||
@@ -884,7 +883,7 @@ Details are given in the following example.
|
||||
// also a base class of `mortal`, yet there is only a single
|
||||
// instance of `owned` (as for virtual inheritance in C++).
|
||||
contract named is owned, mortal {
|
||||
constructor(bytes32 name) {
|
||||
constructor(bytes32 name) public {
|
||||
Config config = Config(0xD5f9D8D94886E70b06E474c3fB14Fd43E2f23970);
|
||||
NameReg(config.lookup(1)).register(name);
|
||||
}
|
||||
|
||||
@@ -465,10 +465,10 @@ The following example shows how an error string can be used together with revert
|
||||
|
||||
::
|
||||
|
||||
pragma solidity ^0.4.22;
|
||||
pragma solidity >0.4.24;
|
||||
|
||||
contract VendingMachine {
|
||||
function buy(uint amount) payable {
|
||||
function buy(uint amount) public payable {
|
||||
if (amount > msg.value / 2 ether)
|
||||
revert("Not enough Ether provided.");
|
||||
// Alternative way to do it:
|
||||
|
||||
@@ -205,7 +205,7 @@ for the two input parameters and two returned values.
|
||||
* @return s The calculated surface.
|
||||
* @return p The calculated perimeter.
|
||||
*/
|
||||
function rectangle(uint w, uint h) returns (uint s, uint p) {
|
||||
function rectangle(uint w, uint h) public returns (uint s, uint p) {
|
||||
s = w * h;
|
||||
p = 2 * (w + h);
|
||||
}
|
||||
|
||||
+1
-2
@@ -483,7 +483,7 @@ Another example that uses external function types::
|
||||
|
||||
contract OracleUser {
|
||||
Oracle constant oracle = Oracle(0x1234567); // known contract
|
||||
function buySomething() {
|
||||
function buySomething() public {
|
||||
oracle.query("USD", this.oracleResponse);
|
||||
}
|
||||
function oracleResponse(bytes memory response) public {
|
||||
@@ -979,4 +979,3 @@ converted to a matching size. This makes alignment and padding explicit::
|
||||
uint16 x = 0xffff;
|
||||
bytes32(uint256(x)); // pad on the left
|
||||
bytes32(bytes2(x)); // pad on the right
|
||||
|
||||
|
||||
Reference in New Issue
Block a user