feat: v1.0.0 祀梦笔记:从 0 到 1 的数字化花园建设
This commit is contained in:
88
docs/notes/programming/solidity/basic-syntax.md
Normal file
88
docs/notes/programming/solidity/basic-syntax.md
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
title: Solidity 基础语法与数据类型
|
||||
createTime: 2025/09/22 10:30:00
|
||||
permalink: /programming/solidity/basic-syntax/
|
||||
---
|
||||
|
||||
# Solidity 基础语法与数据类型~(≧∇≦)ノ
|
||||
|
||||
## Solidity 文件基础框架
|
||||
|
||||
Solidity 文件的基础框架通常包含以下几个部分:
|
||||
|
||||
1. **SPDX 许可证标识符 (SPDX License Identifier)**:为了避免法律问题和明确智能合约的开源许可证,建议在合约的开头添加 SPDX 许可证标识符。
|
||||
2. **Solidity 版本声明 (Pragma)**:这会告诉编译器您希望使用哪个版本的 Solidity 来编译您的代码。
|
||||
3. **ABI编码编译指示**:通过`pragma abicoder v1`或`pragma abicoder v2`来指定ABI编码版本。
|
||||
4. **合约定义 (Contract Definition)**:这是您编写智能合约代码的主体部分。
|
||||
|
||||
下面是一个基础的 Solidity 文件框架示例,您可以直接使用:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.20;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
contract MyContract {
|
||||
// 在这里编写您的合约代码
|
||||
}
|
||||
```
|
||||
|
||||
## Solidity 基础数据类型
|
||||
|
||||
- 布尔类型(bool):值为 `true` 和 `false`
|
||||
- 运算符:`!`(逻辑非)、`&&`(逻辑与)、`||`(逻辑或)、`==`(等于)、`!=`(不等于)
|
||||
- 整形(int/uint):
|
||||
- 有符号整数(int):可以表示负数和零。
|
||||
- 无符号整数(uint):只能表示非负数。
|
||||
- 整数类型可以是8位、16位、32位、64位或256位。(只要是八的倍数都可以)
|
||||
- 例如:`int8`、`uint256`等。
|
||||
- 运算符:
|
||||
- 比较运算符:`<=`,`<`,`>=`,`>`
|
||||
- 位运算符:`&`(按位与)、`|`(按位或)、`^`(按位异或)、`~`(按位取反)
|
||||
- 移位运算符:`<<`(左移)、`>>`(右移)
|
||||
- 算数运算符:`+`(加法)、`-`(减法)、`*`(乘法)、`/`(除法)、`%`(取余)
|
||||
- 对于一个整数类型`X`,可以使用`type(X).min`和`type(X).max`来获取其最小值和最大值。
|
||||
|
||||
|
||||
|
||||
## Solidity 基础语法结构
|
||||
|
||||
## Solidity 基础操作
|
||||
|
||||
### 导入其他源文件
|
||||
|
||||
Solidity 支持导入其他源文件,使用`import`语句。例如:
|
||||
|
||||
```solidity
|
||||
import "filename.sol";
|
||||
```
|
||||
|
||||
这将导入`filename.sol`文件中的合约代码。
|
||||
|
||||
还可以创建一个新的全局符号
|
||||
|
||||
```solidity
|
||||
import * as NewName from "filename.sol"
|
||||
```
|
||||
|
||||
这将创建一个新的全局符号`NewName`,您可以在合约中使用它来引用`filename.sol`文件中的合约,例如`NewName.ContractName`。
|
||||
|
||||
还可以在导入的同时重命名符号:`import {symbol1 as alias, symbol2} from "filename";`
|
||||
|
||||
### 注释
|
||||
|
||||
Solidity 支持两种类型的注释:
|
||||
|
||||
1. **行注释**:使用`//`来注释单行代码。
|
||||
2. **块注释**:使用`/*`和`*/`来注释多行代码。
|
||||
|
||||
例如:
|
||||
|
||||
```solidity
|
||||
// 这是一个行注释
|
||||
|
||||
/*
|
||||
这是一个
|
||||
块注释
|
||||
*/
|
||||
```
|
||||
Reference in New Issue
Block a user