# Solidity 基础语法与数据类型 | 仲夏夜之梦
Solidity 文件基础框架 Solidity 文件的基础框架通常包含以下几个部分： SPDX 许可证标识符 (SPDX License Identifier)：为了避免法律问题和明确智能合约的开源许可证，建议在合约的开头添加 SPDX 许可证标识符。 Solidity 版本声明 (Pragma)：这会告诉编译器您希望使用哪个版本的 Solidity...

Skip to content

# Solidity 基础语法与数据类型

约 600 字大约 2 分钟

2025-09-22

## 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 文件框架示例，您可以直接使用：

    // 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`语句。例如：

    import "filename.sol";

这将导入`filename.sol`文件中的合约代码。

还可以创建一个新的全局符号

    import * as NewName from "filename.sol"

这将创建一个新的全局符号`NewName`，您可以在合约中使用它来引用`filename.sol`文件中的合约,例如`NewName.ContractName`。

还可以在导入的同时重命名符号：`import {symbol1 as alias, symbol2} from "filename";`

### 注释

Solidity 支持两种类型的注释：

1. 行注释：使用`//`来注释单行代码。
2. 块注释：使用`/*`和`*/`来注释多行代码。

例如：

    // 这是一个行注释

    /*
    这是一个
    块注释
    */