前言
solidity 的学习看过文档,同样也玩这个游戏,最后发现从游戏方面来思考更容易吸收一点,从这个游戏中,我才理解了智能合约的具体思维。
solidity这门语言的难度并不高,只要理解了思维就很简单。
游戏学习网址:cryptozombies
solidity 注意的点
private,public,view ,pure
这些都是函数的更多属性。
private,public需要放在view,pure的前面来声明
合约中的函数默认是public的公开函数
view指的是只读取合约中的信息,不修改任何数据。
pure则是不读取,不写入,只是利用传参进行返回内容的操作
数组和类型
数组和其他语言类似,更像是c类语言。
如果声明数组长度就是静态,如果不声明长度则是动态,能够自动扩容。
类型有string等类型关键字,同时声明的struct等结构体也可以声明变量。
使用uint(int type),则可以讲int的变量类型转化为uint类型。
状态变量
状态变量从一开始只是当作一个普通的语言变量而已。
学习了区块链后发现,区块链的执行标准更像是申明一个建议的数据库内容类型,会常驻在其中。
function 函数及返回函数
一个简易的函数声明:
function Name(string name) private view{
}
这个函数很普通,也就是申明一个私有函数,同时不允许写入合约数据。
私有函数不可以给其他合约调用,就算死public等共有函数也仅仅只是让其他函数能够读取数据,无法写入
return这个返回函数则会比其他语言更加繁琐:
function Name(string name) private view returns (string){
return name;
}
如果需要返回则是需要在函数开头申明这个返回内容变量,函数名行的返回是returns而不是return。
具体就这些,也不难,没什么好说的。