📜  Solidity – 合约基础(1)

📅  最后修改于: 2023-12-03 15:20:10.843000             🧑  作者: Mango

Solidity – 合约基础

Solidity 是一种合约编程语言,用于在以太坊区块链上编写智能合约。本文将介绍 Solidity 的基础知识,包括数据类型、函数、事件、修饰符等。

数据类型

Solidity 支持的数据类型包括布尔型、整型、地址、字节数组、字符串、结构体等。其中,整型有 uint 和 int 两种,分别表示无符号整数和有符号整数。

以下是 Solidity 中常用的数据类型代码片段:

bool flag = true;
uint number = 123;
int balance = -100;
address owner = 0x1234567890abcdef;
bytes32 data = 0x1234567890abcdef1234567890abcdef;
string name = "Alice";
struct Person {
    string name;
    uint age;
}
函数

Solidity 中的函数与其他编程语言的函数类似,可以传递参数并返回值。Solidity 还包含了一些特殊的函数,如构造函数和回退函数。

以下是 Solidity 中函数的代码样例:

function add(uint a, uint b) returns (uint) {
    return a + b;
}

constructor() public {
    owner = msg.sender;
}

function() payable external {
    balance += msg.value;
}
事件

事件用于在 Solidity 合约中记录日志,以便后续分析。事件可以带有参数,并且可以通过 web3.js 等工具进行监听。

以下是 Solidity 中事件的代码样例:

event NewPerson(string name, uint age);

function createPerson(string name, uint age) public {
    Person memory person = Person(name, age);
    people.push(person);
    emit NewPerson(name, age);
}
修饰符

修饰符用于在 Solidity 合约中对函数进行修饰,以便增强函数的安全性或者简化代码。

以下是 Solidity 中修饰符的代码样例:

modifier onlyOwner() {
    require(msg.sender == owner);
    _;
}

function setName(string newName) public onlyOwner {
    name = newName;
}
总结

本文介绍了 Solidity 的基础知识,包括数据类型、函数、事件、修饰符等。希望读者可以通过本文学会如何在 Solidity 中编写智能合约。