中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

solidity智能合約[11]-字符串

發布時間:2020-06-17 18:57:03 來源:網絡 閱讀:704 作者:jonson_jackson 欄目:開發技術

字符串

string 類型存儲字符串, 在solidity中使用了UTF-8格式來存儲字符串。

1
2
3
string public name="jonson";//6a6f6e736f6e
string public name1="!@#$%^&*())*";
string public name2="我愛你";

字符串不能直接的獲取長度和內容

下面是錯誤的方式

1
2
3
4
5
6
7
// function getLength() returns(uint){
//     name.length;
// }

// function getName() returns(bytes1) {
//     return name[0];
// }

獲取字符串長度和內容和的正確方式

1
2
3
4
5
6
7
 function getLength() public view returns(uint){
   return bytes(name).length;
}

function getName() public view returns(bytes1){
return bytes(name)[1];
}

修改字符串中的內容

1
2
3
4
function changeName() public{
// bytes(name)[0]=0x55;
   bytes(name)[0]='P';
}

證明中文占了3個字節

1
2
3
4
   string public name2="我愛你";
  function getLength3() public view returns(uint){
   return bytes(name2).length;
}

字符串轉動態字節數組

1
2
3
4
function  getBytes() public view returns(bytes){

   return bytes(name);
}

完整代碼測試

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
pragma solidity ^0.4.23;

contract StringTest{

   string public name="jonson";//6a6f6e736f6e
   string public name1="!@#$%^&*())*";
   string public name2="我愛你";

   // function getLength() returns(uint){
   //     name.length;
   // }
     function getLength() public view returns(uint){
       return bytes(name).length;
   }
   // function getName() returns(bytes1) {
   //     return name[0];
   // }
        function getName() public view returns(bytes1){
       return bytes(name)[1];
   }

   function changeName() public{
   // bytes(name)[0]=0x55;
       bytes(name)[0]='P';
   }

   function  getBytes() public view returns(bytes){

       return bytes(name);
   }

        function getLength2() public view returns(uint){
       return bytes(name1).length;
   }
   function  getBytes1() public view returns(bytes){

       return bytes(name1);
   }

   function getLength3() public view returns(uint){
       return bytes(name2).length;
   }
   function  getBytes2() public view returns(bytes){

       return bytes(name2);
   }
}

總結

1、字符串是特殊的動態長度字節數組
2、字符串不能夠字節的修改長度和內容,需要轉換為bytes動態字節數組
3、字符串在solidity中使用了UTF8格式來存儲,所以漢字占了3個字節,英文和特殊字符占了一個字節

  • 本文鏈接: https://dreamerjonson.com/2018/11/15/solidity-11/

  • 版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協議 許可協議。轉載請注明出處!

solidity智能合約[11]-字符串

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄大仙区| 平南县| 岳阳县| 大同市| 抚松县| 泸西县| 浪卡子县| 湄潭县| 于都县| 黑山县| 太保市| 忻城县| 海伦市| 石首市| 大姚县| 山东| 扶余县| 北川| 手游| 怀安县| 边坝县| 澄城县| 那坡县| 蒙阴县| 湖州市| 漾濞| 贵州省| 成武县| 鄂尔多斯市| 望都县| 雷山县| 东宁县| 高碑店市| 祁阳县| 阜城县| 商丘市| 仁怀市| 方山县| 天门市| 深水埗区| 依安县|