solidity学习(二)
pragma solidity ^0.4.0; //版本号,预编译,^是向上兼容版本(0.4~0.5) //建立对象 contract是建立的对象-是合约 HelloWorld是合约的名字 contract HelloWorld{ //给对象加入状态,面向对象编程嘛,这里是string string Myname = "xixi-Teamon"; //写一个方法,获取对象的所有行为 function getName() public view returns(string) //这里的public是权限,所有人都可写入。 //view不会修改区块链上的变量、代码,但是可以读取变量,节约了gas { return Myname; } function changeName(string _newName) public //string后面有空格,加的变量要上下一致 //点击changeName以后,就会消耗gas.上面有view,所以多次点击getname这个函数不消耗gas. { Myname = _newName; } function pureTest(string _name) pure public returns(string){ //pure是固定的输入输出,但是pure后面记得加返回值,返回到_name中 //pure函数不消耗gas return _name; } }
这里定义了三个function:getName、changeName、pureTest三个函数,主要作用是看deploy一次以后多次点击,是否还会有油耗。
- getName后面有view,不修改区块链上的东西。单点不消耗gas
太惨了。。。代码能力为0,,还得从hello world学起。。。。丢脸嘤嘤嘤。。。
----------------------------------------------------------------------------------------------------
Boolean判断:
pragma solidity ^0.4.0; contract BooleanTeat{ bool _a; //returns后面要加上bool int num1 = 100; int num2 = 200; //第一个功能:简单输出bool状态 function getBool() returns(bool){ return _a; //默认情况下,没有具体值,返回的bool类型都是false; } //第二个功能:同第一 function getBool2() returns(bool){ return !_a; //反转:真变假,假变真。 } //第三个功能:进行对比、判断 function panduan() returns(bool){ return num1==num2; //只输出真和假,这里num1不等于num2,所以输出的是false。 } function panduan2() returns(bool){ return num1 != num2; } //与或非 //&&:两个相等才为真 ||:一个为真则为真 function yu() returns(bool){ return (num1==num2) && true; } function yu2() returns(bool){ return (num1!=num2) && true; } function yu3() returns(bool){ return (num1==num2) || true; } function yu4() returns(bool){ return (num1==num2) || false; } }
珍惜时间,只错一次