变量

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;
contract Demo {
    uint number = 12;
    uint256 public count;
    string name = "";
}

结构体

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;
contract Demo {
    // 定义结构体
    struct Person {
        uint age;
        string name;
    }
    Person public p;
    constructor() {
        // 使用结构体
         p = Person(18,"Jobs");
    }
}

枚举

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;
contract Demo {
    // 定义枚举
    enum Gender{
        Male, Female
    }
    struct Person {
        uint age;
        string name;
        // 性别,枚举
        Gender gender;
    }
    Person public p;
    constructor() {
        // 使用枚举
         p = Person(18,"Jobs", Gender.Female);
    }

}

函数

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;
contract Demo {
    enum Gender{
        Male, Female
    }
    struct Person {
        uint age;
        string name;
        Gender gender;
    }
    Person public p;
    constructor() {
         p = Person(18,"Jobs", Gender.Female);
    }

    // memory 表示是临时 对应的还有 storage 标识存储  public 可以在外部调用 returns 返回值
    function update(string memory _name, uint  _age) public returns(bool) {
        p.name = _name;
        p.age = _age;
        return true;
    }
}
// 外部函数  pure 表示不得修改变量(以后的文章会细讲)
function isOlder(uint age) pure returns (bool) {
    return age >= 60;
}

函数修饰符

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;

contract Demo {
    address public owner;
    // 只有部署的人员有权限修改
    modifier onlyOwner() {
        require(msg.sender == owner, "Only seller can call this.");
        // _; 这个必须要,标识是修饰符
        _;
    }
    constructor() {
        owner = msg.sender;
    }
    function blockList() public view onlyOwner {
        //....
    }
}