这次需要增加两个功能函数,分别为授权和投票。
对于授权,有以下3个要求,
1、只有只有投票发起者才有权限为别人授权
2、被授权者从未投过票
3、被授权者没有被授权过
而对于投票,则要求比较简单,
1、不能重复投票
来尝试继续编写下代码,如下图,
编译没有问题。
来测试下,
这里可能有人要问我,之前那个参数那里,不是要输入32 byte long 的吗?
哦,案例上是那样写的,但我感觉太麻烦了,于是将byte32[] 修改成为string[]类型了,所以就可以直接输入string数组。
ps,先前教程上说solidity没有string的数组类型,但我尝试了下是可以的,不知道是不是之前旧版本没有,而新版本增加这个功能了?
我个人觉得,鉴于solidity是强类型语言,如果没有一些基本的如string数组支持,光是变量之间的转换,确是很不方便的。
输入要授权的地址,测试OK,然后查询下,
正确。
切换账户身份,从发起者切换成普通用户,试着投票下,见如下图,
发现数组为0的该地址账户,
weight =1 ;
voted 为true;
一切都很顺利。
不要迷信教程,教程也不一定都对,很可能因为各种原因,教程有些地方会过时或出错,又或者新版本弃用了旧的写法等,这个时候就需要勤动手,多思考,真正理解意思,而不是生搬硬套。
不要迷信教程,教程也不一定都对,很可能因为各种原因,教程有些地方会过时或出错,又或者新版本弃用了旧的写法等,这个时候就需要勤动手,多思考,真正理解意思,而不是生搬硬套 - 嗯,还是要多加摸索和学习,精益求精~
先转发下,有空再来研究。谢谢伟哥的分享。