由于remix版本的问题与图片中略有不同
//SPDX-License-Identifier: GPL-3.0
pragma solidity ^ 0.8.0;
contract HelloWorld{
string Myname="yang";
function getName() public view returns(string memory)
{
return Myname;
}
function changeName(string memory _newName) public
{
Myname=_newName;
}
}
view:不管调用任何函数都不会消耗gas
deploy消耗Ether,多写代码消耗Ether更多
changeName消耗了gas,因为会修改状态消耗燃料
//SPDX-License-Identifier: GPL-3.0
pragma solidity ^ 0.8.0;
contract HelloWorld{
string Myname="yang";
function getName() public view returns(string memory)
{
return Myname;
}
function changeName(string memory _newName) public
{
Myname=_newName;
}
function pureTest(string memory _name) public pure returns(string memory){
return _name;
}
}
Deploy和changeName函数均会消耗Ether
pure:永久的,不会读取到状态变量
Boolean.sol:
//SPDX-License-Identifier: GPL-3.0
pragma solidity^0.8.0;
contract BooleanTest{
bool _a;
int num1=100;
int num2=200;
function getBool() public view returns(bool){
return _a;
}
function getBool2() public view returns(bool){
return !_a;
}
function panduan() public view returns(bool){
return num1==num2;
}
function panduan2() public view returns(bool){
return num1!=num2;
}
function yu() public view returns(bool){
return (num1==num2)&&true;
}
function yu2() public view returns(bool){
return (num1!=num2)&&true;
}
function huo() public view returns(bool){
return (num1==num2)||true;
}
function huo2() public view returns(bool){
return (num1!=num2)||true;
}
}
Math.sol:
//SPDX-License-Identifier: GPL-3.0
pragma solidity ^ 0.8.0;
//int可正可负,uint只能正
contract math{
uint numa=4;
uint numb=2;
//uint8 numc=2;
function add(uint a,uint b) public pure returns(uint){
return a+b;
}
function jian(uint a,uint b) public pure returns(uint){
return a-b;
}
function cheng(uint a,uint b) public pure returns(uint){
return a*b;
}
function chu(uint a,uint b) public pure returns(uint){
return a/b;
}
function quyu(uint a,uint b) public pure returns(uint){
return a%b;
}
function pingfang(uint a,uint b) public pure returns(uint){
return a**b;
}
uint8 a=3;
uint8 b=4;
function weiyu() public view returns(uint){
return a&b;
}
function weihuo() public view returns(uint){
return a|b;
}
function weifan() public view returns(uint){
return ~a;
}
function weiyihuo() public view returns(uint){
return a^b;
}
function zuoyi() public view returns(uint){
return a<<1;
}
function youyi() public view returns(uint){
return a>>1;
}
function flow() view public returns(uint){
uint mm=255;
mm++;
return mm;
}
function flow2() public view returns(uint){
uint8 mm=0;
mm--;
return mm;
}
function errorTest() public pure returns(int){
int a=2;
int b=0;
return a/b;
}
// function errorTest2(){
// int a=2;
// //int b=0;
// //return a/b;
// int b=-1;
// a<<b;
// }
function intergerTest() public pure returns(uint){
uint num=(2**800+1)-2**800;
return num;
}
function intergerTest2() public pure returns(uint){
uint num=2/5*10000000000;
return num;
}
function intergerTest3() public pure returns(uint){
uint num=11111111111111111111111111111111111112-11111111111111111111111111111111111111;
return num;
}
}
Bytes.sol:
//SPDX-License-Identifier: GPL-3.0
pragma solidity ^ 0.8.0;
contract ByteArray{
bytes1 public num1=0x7a;
bytes2 public num2=0x7a68;
bytes12 public num3=0x7a6890899078904534234567;
bytes1 public a=0x7a;
bytes1 public b=0x68;
function getLength() public view returns(uint){
return num1.length;
}
function getLength2() public view returns(uint){
return num2.length;
}
function getLength3() public view returns(uint){
return num3.length;
}
// public function setLength(){
// // num1.length=18;
// }
function bijiao() public view returns(bool){
return a>b;
}
function bijiao2() public view returns(bool){
return a>=b;
}
function bijiao3() public view returns(bool){
return a<b;
}
function bijiao4() public view returns(bool){
return a<=b;
}
function bijiao5() public view returns(bool){
return a==b;
}
function bijiao6() public view returns(bool){
return a!=b;
}
function weiyu() public view returns(bytes1){
return a&b;
}
function weihuo() public view returns(bytes1){
return a|b;
}
function weifan() public view returns(bytes1){
return ~a;
}
function weiyihuo() public view returns(bytes1){
return a^b;
}
function zuoyi() public view returns(bytes1){
return a<<1;
}
function youyi() public view returns(bytes1){
return a>>1;
}
}
DynamicBytes.sol:
//SPDX-License-Identifier: GPL-3.0
pragma solidity^0.8.0;
contract DynamicByte{
bytes public name=new bytes(2);
function initName() public{
name[0]=0x7a;
name[1]=0x68;
}
function getLength() public view returns(uint){
return name.length;
}
function changeName() public{
name[0]=0x88;
}
function changeLength() public{
name.length=5;
}
function pushTest() public {
name.push(0x99);
}
function popTest() public {
name.pop();
}
}