当前位置: 首页 > news >正文

大连建站模板厂家网站开发最新书籍

大连建站模板厂家,网站开发最新书籍,现在网站用什么软件做,取消wordpress 注册邮箱验证码参考教程#xff1a;【数据存储篇】1、string内存原理——特殊动态数组_哔哩哔哩_bilibili 1、语法——字符串#xff1a; //声明版本号#xff08;程序中的版本号要和编译器版本号一致#xff09; pragma solidity ^0.5.17; //合约 contract DynamicString {string name…参考教程【数据存储篇】1、string内存原理——特殊动态数组_哔哩哔哩_bilibili 1、语法——字符串 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract DynamicString {string name lalalalalalala啦啦啦;function getLength() public returns(uint){return bytes(name).length;  //要想获取字符串的长度需要先将其强制转换成动态长度字节数组string不提供长度属性}function getPartName() public returns(bytes1){return bytes(name)[0];  //返回字符串第一个字符1个字节的二进制形式不能直接通过数组下标的形式获取其中的字符}function changeName() public {bytes(name)[0] T;  //对字符串的某一个字符进行修改//一个英文字母以及特殊字符和数字等占1个字节一个中文汉字占3个字节} } 1要想获取字符串的长度需要通过bytes()先将其强制转换成动态长度字节数组string不提供长度属性。 2对于string不能通过数组下标的形式获取其中的某个字符。 3一个汉字占3个字节这是因为汉字在内存中是通过UTF8类型存储的至于其它一些特殊字符和数字则是占用一个字节。 2、语法——字节数组转换 1固定长度字节数组转为固定长度字节数组 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract DynamicString {bytes12 name  0x7a68656e676a69616e78756e;function changeBytes1() public view returns(bytes1){return bytes1(name);  //返回的结果为“0x7a”后面的内容全部丢失}function changeByte2() public view returns(bytes2){return bytes2(name);  //返回的结果为“0x7a68”后面的内容全部丢失}function changeByte3() public view returns(bytes16){return bytes16(name);  //返回的结果为“0x7a68656e676a69616e78756e00000000”强制转换后多余的空间由0填充} } 2固定长度字节数组转为动态长度字节数组 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract DynamicString {bytes12 name  0x7a68656e676a69616e78756e;function fixBytesToDynamicBytes() public view returns(bytes memory){//return bytes(name);  不允许直接将字符串的强制类型转换返回需要借助for循环将固定长度字节数组复制到动态长度字节数组中bytes memory newName new bytes(name.length);  //方法内的动态长度字节数组要加“memory”这里暂时不做解释for(uint i 0; i name.length; i)  //数组元素下标的数据类型只能是uint除此之外for循环的使用与c语言基本相同if语句、while语句以及相关关键字的用法也基本相同{newName[i] name[i];  //复制行为}return newName;} } 3动态长度字节数组转为字符串 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract Bytes2String {bytes name  new bytes(2);function init() public{name[0] 0x7a;name[1] 0x68;}function bytesToString() public view returns(string memory){return string(name);  //允许将动态长度字节数组强制转换字符串的结果直接返回} } 4固定长度字节数组转为字符串 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract Bytes32ToString {function byts32ToString(bytes32 inputName)  public view returns(string memory){uint count 0;  //定义一个无符号变量记录字节数组的实际长度否则转换而得的字符串尾部会有不定量的NUT字符for(uint i 0; i inputName.length; i)  //利用for循环计算inputName数组的实际长度{if(inputName[i] ! 0){count;}}bytes memory finalName new bytes(count);  //动态长度字节数组的初始长度为inputName数组的实际长度//利用for循环将固定长度字节数组转换为动态长度字节数组再强制转换为字符串for(uint j 0; jcount; j){finalName[j] inputName[j];  //复制行为}return string(finalName);}} 3、语法——数组与函数结合使用 1固定长度数组 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract FixArray {//定义语法数据类型[元素个数] 数组名uint[5] arr [1,2,3,4,5];  //定义时可以不进行初始化那么初值将会全部置为0function init() public{arr[0] 100;  //可以对单个元素值进行修改arr[1] 200;}function sumArr() public view returns(uint){uint sum 0;for(uint i 0; i arr.length; i)  //除了数组元素下标是uint类型以外其它地方和c语言基本相同{sum arr[i];}return sum;}//固定长度数组可以通过length获取其长度但是不能对其长度进行更改也不能进行push操作 } 2可变长度数组 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract DynamicArray {uint[] arr [1,2,3,4,5];  //在定义数组时不写出元素个数就是定义可变长度数组function changeLength() public{arr.length 1;  //对可变长度数组的长度进行缩短原数组的多余部分会丢失}function changeLength2() public{arr.length 10;  //对可变长度数组的长度进行增长多余部分用0填充}function getContent() public view returns(uint[] memory){return arr;  //可以直接将数组不管长度是否可变作为返回值返回也可以将数组作为参数传入}function getLength() public view returns(uint){return arr.length;}function push() public{arr.push(6);  //在可变长度数组末尾追加元素6}} 可以直接将数组不管长度是否可变作为返回值返回也可以将数组作为参数传入作为返回值时需注意returns声明的数据类型要与返回值严格相同对于固定长度数组声明的元素个数要与返回的元素个数相同作为参数传入函数时也同理。 4、语法——二维数组 1固定长度二维数组 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract TwoArray {uint[2][3] arr [[1,2],[3,4],[5,6]];  //与大多数编程语言不同solidity定义二维数组时先声明列数再声明行数个人认为比较别扭function getLength() public view returns(uint){return arr.length;  //该例中返回3代表有3个元素其中每个元素自己又由2个元素组成}function getContent() public view returns(uint[2][3] memory){return arr;  //可以将二维数组作为返回值直接返回输出“unit256[2][3]:1,2,3,4,5,6”是线性表示的}function add() public view returns(uint){uint sum 0;//遍历二维数组需要借助嵌套循环for(uint i 0; iarr.length; i)  //arr.length代表arr中有3行{for(uint j0; jarr[0].length; j)  //arr.length[0]代表arr中每一行有2个元素即2列{sum arr[i][j];  //虽然二维数组的声明比较别扭但使用时和c语言基本也完全一样}}return sum;} } 2可变长度二维数组 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract DynamicTwoArray {uint[][] arr [[1,2],[3,4],[6,7]];  //可变长二维数组初始化时不允许每个一维数组长度不相同/*function getContent()  public view returns(uint[][] memory){return arr;  //动态长度数组不支持直接返回}*/function changeLength() public{arr.length 10;  //修改二维数组的行数}function getLength() public view returns(uint){return arr.length;  //二维数组的行数}function getContntLength() public view returns(uint) {return arr[0].length;  //二维数组的列数}} 5、语法——数组字面量数组常量 //声明版本号程序中的版本号要和编译器版本号一致 pragma solidity ^0.5.17; //合约 contract ArrayLiterals {/* function getArrayLiterals() public returns(uint[3] memory){return [1,2,3];  //uint默认为256位但是1、2、3都是uint8类型类型不匹配会报错}function getArrayLiterals2() public returns(uint[3] memory){return [256,255,3];  //uint默认为256位但是256是uint16类型类型不匹配会报错255、3是uint8类型}*/function getArrayLiterals1() public view returns(uint16[3] memory){return [256,2,3];  //解决办法1让声明的返回值类型和实际返回值匹配将返回值参数中的类型改为数组元素中最大值的类型}function getArrayLiterals2() public view returns(uint[3] memory){return [uint(256),2,3];  //解决办法2让实际返回值类型和声明返回值匹配} }
http://www.pierceye.com/news/369485/

相关文章:

  • 沧州英文模板建站长沙 网站建设公司
  • 广州网站备案公司南昌网站建设网站推广
  • 龙岗外贸网站建设公司博览局网站建设
  • 怎么做淘课网站百度网站优化方案
  • 余姚做网站深圳华强北怎么了
  • 网站建设单元格边距WordPress进
  • 备案后的域名改网站名沪深300指数怎么买
  • 行业网站维护买电脑wordpress
  • 廊坊兼职网站建设网站图片怎么做的高级
  • pc网站转换手机网站wap用jsp源码做网站
  • 重庆慕尚网站建设在线美工
  • 珠海网站设计培训源码网站
  • 中山好的做网站的公司网站seo外包
  • 付费的网站是指展览馆网站建设方案书
  • 免费整套ppt模板下载网站网络营销推广目的
  • 公司 做网站企业手机app开发公司
  • 玉树电子商务网站建设多少钱做类似淘宝一样的网站
  • 住房城乡与建设厅网站燕郊网站开发
  • 欧美风格网站特点wordpress 电影主题
  • 烟台网站建设网站推广团队logo标志设计
  • 怎么注册建设银行网站如何创建属于个人网站
  • 双语网站系统wordpress page 父页面
  • 连云港做网站设计稿定设计官网入口
  • 建筑网站推荐wordpress hook api
  • 昆明做网站公司哪家好安卓优化
  • 魔站建站系统哪家好国内知名的包装设计公司
  • 福田区住房和建设局网站早晨设计 做网站设计吗
  • 郑州轨道网站开发手机怎么做动漫微电影网站
  • vscode网站开发昆明做网站找启搜网络
  • 如何评估网站虚拟商品交易网站建设