个人学习solidity笔记分享和学习心得
Solidity是以太坊虚拟机智能合约的语言 开发工具:Remix
Solidity 源代码程序结构:{
注释(代码所用软件许可(license))由//开头,不会被程序运行; 如果没有许可程序可以运行,但会有编译警告。 ex:
声明源文件所用solidity版本
合约内容 ex: 语法结构类似c++中的类(class) } 编写完之后需要编译和部署,remix可以模拟部署编写的智能合约。 Remix中文设定:左下方设置处可调节语言为简体中文(编写方便一点)
布尔值有两种:true&false 运算同c++中bool:{
!
(逻辑非)&&
(逻辑与, "and" )||
(逻辑或, "or" )==
(等于)!=
(不等于)}
ex: bool public _bool = true ;
bool public _bool1 = !_bool; //取非(_boo1为false)
bool public _bool2 = _bool && _bool1; //(_bool2为false)
bool public _bool3 = _bool || _bool1; //或(_bool3为true)
bool public _bool4 = _bool == _bool1; //相等(_bool4为false)
bool public _bool5 = _bool != _bool1; //不相等(_bool5为true)
其中&&和||遵循短路运算符 f(x)&&g(x)当f(x)和g(x)均为true时逻辑算式结果为true; 而f(x)||g(x)f(x)和g(x)只要有一方为true该算式结果为true;
int:整数(包括负数) uint:正整数 uint256:256位正整数 常用运算符类似c++{
<=
, <
, ==
, !=
, >=
, >
+
, -
, 一元运算 -
, +
, *
, /
, %
(取余),**
(幂)
}
地址(adress)储存一个20字节的数值(以太坊地址的大小),一般以0x开头,在remix 中调试需要交易哈希地址
地址类型也有成员变量 地址有普通地址和payable修饰的地址,其中payable地址多了send和transfer两个成员 其中若send执行失败不影响合约的进行,balance和transfer用于查询余额和安全转账。
字节数组bytes分两种,一种定长(byte, bytes8, bytes32),另一种不定长。定长的属于数值类型,不定长的是引用类型。 定长bytes可以存一些数据,消耗gas比较少。
<!--StartFragment-->
// 固定长度的字节数组 bytes32 public _byte32 = "MiniSolidity"; bytes1 public _byte = _byte32[0];
MiniSolidity
变量以字节的方式存储进变量_byte32
,转换成16进制
为:0x4d696e69536f6c69646974790000000000000000000000000000000000000000
_byte
变量存储_byte32
的第一个字节,为0x4d
。题目:bytes4类型具有几个16进制位?(8个)
枚举
枚举(enum)用于为uint的分配名称,使程序易于维护和阅读。 可与uint相互转换。
enum ActionSet { Buy, Hold, Sell }\ // 创建enum变量 action\ ActionSet action = ActionSet.Buy;
学习心得
在有一定c++的基础上学习,比较轻松,对于智能合约编程有了初步的认识。
学习内容来自:wtf.academy
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!