91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

淳化县| 思南县| 雅安市| 丰台区| 达拉特旗| 新竹市| 莱州市| 红河县| 油尖旺区| 中卫市| 武宁县| 黄石市| 平遥县| 公主岭市| 丁青县| 神农架林区| 阜康市| 乐陵市| 瑞丽市| 本溪市| 如东县| 潢川县| 洪湖市| 固镇县| 阳新县| 长岭县| 衢州市| 尚义县| 若尔盖县| 深泽县| 都匀市| 外汇| 驻马店市| 孝义市| 古蔺县| 灯塔市| 波密县| 岳阳县| 灵台县| 大城县| 阜南县|