import{_ as e,c as s,a,o as t}from"./app-Dqab9jXZ.js";const l={};function n(d,i){return t(),s("div",null,[...i[0]||(i[0]=[a(`<h2 id="solidity-文件基础框架" tabindex="-1"><a class="header-anchor" href="#solidity-文件基础框架"><span>Solidity 文件基础框架</span></a></h2><p>Solidity 文件的基础框架通常包含以下几个部分：</p><ol><li><strong>SPDX 许可证标识符 (SPDX License Identifier)</strong>：为了避免法律问题和明确智能合约的开源许可证，建议在合约的开头添加 SPDX 许可证标识符。</li><li><strong>Solidity 版本声明 (Pragma)</strong>：这会告诉编译器您希望使用哪个版本的 Solidity 来编译您的代码。</li><li><strong>ABI编码编译指示</strong>：通过<code>pragma abicoder v1</code>或<code>pragma abicoder v2</code>来指定ABI编码版本。</li><li><strong>合约定义 (Contract Definition)</strong>：这是您编写智能合约代码的主体部分。</li></ol><p>下面是一个基础的 Solidity 文件框架示例，您可以直接使用：</p><div class="language-solidity line-numbers-mode" data-highlighter="shiki" data-ext="solidity" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-solidity"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">// SPDX-License-Identifier: MIT</span></span>
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">pragma</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> solidity</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> ^0.8.20</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">pragma</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> experimental</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> ABIEncoderV2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">contract</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> MyContract</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">    // 在这里编写您的合约代码</span></span>
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="solidity-基础数据类型" tabindex="-1"><a class="header-anchor" href="#solidity-基础数据类型"><span>Solidity 基础数据类型</span></a></h2><ul><li>布尔类型（bool）：值为 <code>true</code> 和 <code>false</code><ul><li>运算符：<code>!</code>（逻辑非）、<code>&amp;&amp;</code>（逻辑与）、<code>||</code>（逻辑或）、<code>==</code>（等于）、<code>!=</code>（不等于）</li></ul></li><li>整形（int/uint）： <ul><li>有符号整数（int）：可以表示负数和零。</li><li>无符号整数（uint）：只能表示非负数。</li><li>整数类型可以是8位、16位、32位、64位或256位。（只要是八的倍数都可以）</li><li>例如：<code>int8</code>、<code>uint256</code>等。</li><li>运算符： <ul><li>比较运算符：<code>&lt;=</code>,<code>&lt;</code>,<code>&gt;=</code>,<code>&gt;</code></li><li>位运算符：<code>&amp;</code>（按位与）、<code>|</code>（按位或）、<code>^</code>（按位异或）、<code>~</code>（按位取反）</li><li>移位运算符：<code>&lt;&lt;</code>（左移）、<code>&gt;&gt;</code>（右移）</li><li>算数运算符：<code>+</code>（加法）、<code>-</code>（减法）、<code>*</code>（乘法）、<code>/</code>（除法）、<code>%</code>（取余）</li><li>对于一个整数类型<code>X</code>，可以使用<code>type(X).min</code>和<code>type(X).max</code>来获取其最小值和最大值。</li></ul></li></ul></li></ul><h2 id="solidity-基础语法结构" tabindex="-1"><a class="header-anchor" href="#solidity-基础语法结构"><span>Solidity 基础语法结构</span></a></h2><h2 id="solidity-基础操作" tabindex="-1"><a class="header-anchor" href="#solidity-基础操作"><span>Solidity 基础操作</span></a></h2><h3 id="导入其他源文件" tabindex="-1"><a class="header-anchor" href="#导入其他源文件"><span>导入其他源文件</span></a></h3><p>Solidity 支持导入其他源文件，使用<code>import</code>语句。例如：</p><div class="language-solidity line-numbers-mode" data-highlighter="shiki" data-ext="solidity" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-solidity"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> &quot;filename.sol&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>这将导入<code>filename.sol</code>文件中的合约代码。</p><p>还可以创建一个新的全局符号</p><div class="language-solidity line-numbers-mode" data-highlighter="shiki" data-ext="solidity" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-solidity"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> * as NewName </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">from</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> &quot;filename.sol&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>这将创建一个新的全局符号<code>NewName</code>，您可以在合约中使用它来引用<code>filename.sol</code>文件中的合约,例如<code>NewName.ContractName</code>。</p><p>还可以在导入的同时重命名符号：<code>import {symbol1 as alias, symbol2} from &quot;filename&quot;;</code></p><h3 id="注释" tabindex="-1"><a class="header-anchor" href="#注释"><span>注释</span></a></h3><p>Solidity 支持两种类型的注释：</p><ol><li><strong>行注释</strong>：使用<code>//</code>来注释单行代码。</li><li><strong>块注释</strong>：使用<code>/*</code>和<code>*/</code>来注释多行代码。</li></ol><p>例如：</p><div class="language-solidity line-numbers-mode" data-highlighter="shiki" data-ext="solidity" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-solidity"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">// 这是一个行注释</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">/*</span></span>
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">这是一个</span></span>
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">块注释</span></span>
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">*/</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,22)])])}const c=e(l,[["render",n]]),r=JSON.parse('{"path":"/programming/solidity/basic-syntax/","title":"Solidity 基础语法与数据类型","lang":"zh-CN","frontmatter":{"title":"Solidity 基础语法与数据类型","createTime":"2025/09/22 10:30:00","permalink":"/programming/solidity/basic-syntax/","description":"Solidity 文件基础框架 Solidity 文件的基础框架通常包含以下几个部分： SPDX 许可证标识符 (SPDX License Identifier)：为了避免法律问题和明确智能合约的开源许可证，建议在合约的开头添加 SPDX 许可证标识符。 Solidity 版本声明 (Pragma)：这会告诉编译器您希望使用哪个版本的 Solidity...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Solidity 基础语法与数据类型\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-10T02:54:35.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/solidity/basic-syntax/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Solidity 基础语法与数据类型"}],["meta",{"property":"og:description","content":"Solidity 文件基础框架 Solidity 文件的基础框架通常包含以下几个部分： SPDX 许可证标识符 (SPDX License Identifier)：为了避免法律问题和明确智能合约的开源许可证，建议在合约的开头添加 SPDX 许可证标识符。 Solidity 版本声明 (Pragma)：这会告诉编译器您希望使用哪个版本的 Solidity..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-10T02:54:35.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-10T02:54:35.000Z"}]]},"readingTime":{"minutes":2,"words":600},"git":{"createdTime":1759059454000,"updatedTime":1760064875000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":1,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"},{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/solidity/basic-syntax.md","headers":[]}');export{c as comp,r as data};
