区块链学堂(第九课):Int类型+数组类型

当前位置:首页 > 币圈百科 > 区块链学堂(第九课):Int类型+数组类型

区块链学堂(第九课):Int类型+数组类型

2022-11-12币圈百科210

Int type官方介绍

Int/uint:大小不等的有符号和无符号整数。关键字uint8到int 256,步长为8(无符号的8到256位)和int8到int 256。uint和int分别是uint 256和int 256的别名。从这里引用

int

int代表有符号整数,即带负数的uint可以代表无符号整数,即从0开始的正整数

uint代表2的8次方uint256和256次方uint256

int8代表-2的7次方到正2的7次方,int256代表-2的255次方到正2的255次方;Int默认为int256

整数运算符

比较:<=, =, >

位运算符:|,~

算术运算符:-,*,/,%,* *,[x

pragma solidity ^0.4.4;contract DemoTypes { function f(uint a)returns(uint b){ uint result=a * 8;返回结果;}}<>输入width height返回智能合约乘以2,并添加if命令

contract demotypes { function F2(int width,int height)returns(int square){ if(width 0 | | height 0)throw;int result=width * height返回结果;}}

输入n,用For循环计算阶乘数

contract DemoTypes {/*输入n,计算n的阶乘,循环实现*/function F3(uint n)returns(uint Jie cheng){ if(n==0)throw;uint结果=1;for(uint I=1;I=n;I){ result *=I;}返回结果;}}
输入n并使用For循环计算1 ^ 2 ^ 3的和.n.
contract DemoTypes {/*计算从1到n的和*/函数F4(uint n)returns(uint sum){ if(n==0)throw;uint结果=0;for(uint I=0;I=n;I){ result=I;}返回结果;}}
在契约中写测试代码
区块链的技术和之前的技术最大的区别在于开源,尤其是智能契约部分,必须开源。所以,测试代码很重要;所以建议大家在写智能合约的时候可以写测试代码?这也是成为以太坊开源社区贡献者的先决条件。
所以我们可以在上面的f4()方法下面添加一部分测试代码代码如下:
Contract Demotypes 2 { uint public test result;/*计算从1到n的和*/函数F4 (uint n)返回(uint sum){ if(n==0)throw;uint结果=0;for(uint I=0;I=n;I){ result=I;}返回结果;}函数g(){ test result=F4(3);}}
增加了一个可观察变量uint public testResult,然后调用函数g()中的f4()方法。此时,您可以在browser-solidity中观察到变量testResult。
当然,这种方法费时费力。以太坊白皮书中,智能合约中没有assert方法,因为更希望智能合约本身简洁明了。然而,在Truffle中,我们可以轻松地使用测试框架来测试智能合约。在接下来的章节中,我们将具体讨论如何测试智能合约。

下一章,我们将介绍最常用的字符串类型,敬请关注。

3354————33——————3——33————3——335433——3愚人节3蓑衣网小编202254335433543354354354354354354354354354343434354—

数组类型基础

在Solidity语言中,int int int[]b;一个数组的成员有两个长度?然后呢。用力.Push是给数组类型添加一个元素,数组的长度1length返回当前数组的长度。如果有一个元素,它将返回1,如果有两个元素,它将返回2。

数组类型

的实际代码从最简单的int数组契约

pragma solidity 0.4.8开始;合同降级类型4 { uint[]public in array;function add(uint a){ int array . push(a);}}

上面的代码很简单,它定义了一个public intArray IntArray,和一个方法add(uint a)。在browser-solidity中,我们可以先加上(111)?马鞭Add(222)。然后调用intArray[0] intArray[1],查看结果,如下图所示:

这个契约也部署在Mist中,也可以通过查看变量intArray来查看值。

给上面的合约降类4增加一个方法?数组中类型4 { uint[]public的()
contract de的长度;函数add(uint a){ int array。推(一);}函数长度()返回(uint len){ uint result=int数组。长度;返回结果;}}代码很简单,直接返回数组类型intArray的长度。期望值是2个,我们可以通过浏览器可靠性来查看结果:

蓑衣网小编2022p1

在上面的基础之上,再增加两个方法,更新?

的值通过增加valueOf?更新?我们实现了对数组类型的修改?和?查看?功能令人厌恶的东西至此已完成了CRU,只缺个删除了

代码如下:p2数组中的合同de类型4 { uint[];函数add(uint a){ int array。推(一);}函数长度()返回(uint len){ uint result=int数组。长度;返回结果;}函数更新(uint _index,uint _ value){ int array[_ index]=_ value;}函数值Of(uint _index)返回(uint _ value){ uint result=int array[_ index];返回结果;}}

该代码在浏览器可靠性中执行通过,限于篇幅,就不贴截图了
最后,再增加一个删除方法

坚固性里面没有对数组类型提供天生的删除操作,因此删除操作写起来略为复杂十.首先要将删除的元素之后的元素逐个前移,然后再删除最后一个元素,最后还要将数组长度减少1

具体代码如下:

函数在(uint _ index){ uint len=int array处删除。长度;if (_index=len)返回;for(uint I=_ index;i=len)返回;for(uint I=_ index;我
区块链学堂(第九课):Int类型+数组类型 | 分享给朋友: