官方网站
WTF-Solidity官网
编译器
区块链的基础
Gas
一经创建,每笔交易都收取一定数量的 gas,目的是限制执行交易所需要的工作量和为交易支付手续费。EVM 执行交易时,gas 将按特定规则逐渐耗尽。
gas price 是交易发送者设置的一个值,发送者账户需要预付的手续费 =gas_price * gas
。如果交易执行后还有剩余, gas 会原路返还。
无论执行到什么位置,一旦 gas 被耗尽(比如降为负值),将会触发一个 out-of-gas 异常。当前调用帧(call frame)所做的所有状态修改都将被回滚。
hello Word 小例子
代码
/*
* title 一个简单的数据存储演示
* author 忆梦九洲
*/
//软件许可(license),这里用的是MIT license。如果不写许可,编译时会警告(warning)
// SPDX-License-Identifier: MIT
//源文件所用的solidity版本
pragma solidity ^0.8.4;
// 合约的名字-->HelloWeb3
contract HelloWeb3{
//合约的内容
string public _string = "Hello Web3!"; //状态变量
//函数
function fun1() public view returns (string memory){
return _string;
}
bool public _bool =true;
}
gas只是一个参考,不是特别准确
Remix工具使用
如果没有开启自动编译,可以使用在编辑代码的页面,按ctrl+S就可以编译代码,非常方便。
Remix执行流程
在默认情况下,remix会用JS虚拟机来模拟以太坊链,运行智能合约,类似在浏览器里跑一条测试链。并且remix会分配几个测试账户给你,每个里面有100 ETH(测试代币),可劲儿用。你点Deploy(黄色按钮),就可以部署咱们写好的合约了。
注释
//:单行注释
/* */:块注释
前两种注释和其他语言如java,Python,c等里面的用法差不多
NatSpec 描述注释 :‘///’
-演示
-文档
-继承说明
-重载